Asp.net mvc ASP.NET MVC 4显示模式和表单身份验证问题

Asp.net mvc ASP.NET MVC 4显示模式和表单身份验证问题,asp.net-mvc,asp.net-mvc-3,razor,forms-authentication,Asp.net Mvc,Asp.net Mvc 3,Razor,Forms Authentication,我有一个ASP.NET MVC 4应用程序,它使用我从ASP.NET MVC 4移动模板开始的表单身份验证。我还添加了显示模式功能以支持移动设备。但是,表单身份验证似乎无法与这些不同的显示模式配合使用 在Global.asax应用程序_Start中,我有 DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("iPhone") { ContextCondition = (context => cont

我有一个ASP.NET MVC 4应用程序,它使用我从ASP.NET MVC 4移动模板开始的表单身份验证。我还添加了显示模式功能以支持移动设备。但是,表单身份验证似乎无法与这些不同的显示模式配合使用

在Global.asax应用程序_Start中,我有

DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("iPhone")
{
    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)
});
为iPhone注册显示模式

在~/Views/Shared中,我有针对桌面浏览器的_Layout.cshtml和针对iPhone的_Layout.iPhone.cshtml。在~/Views/Home中,我有针对桌面浏览器的Index.cshtml和针对iPhone的Index.iPhone.cshtml。在~/Views/Account中,我有ASP.NET MVC 4移动web模板索引、登录、注册等附带的标准.cshtml文件

在FilterConfig.cs RegisterGlobalFilters中,我添加了过滤器;因此,除了AccountController,在站点中的任何位置导航都需要身份验证,AccountController在登录和注册操作方法上具有[AllowAnonymous]

这些都是基本的东西,设置正确。当从桌面浏览器和iPhone浏览器在浏览器中导航到站点时,显示模式设置/配置工作得很好,我会看到普通的.cshtml文件或iPhone特定的文件

添加表单身份验证时出现问题

当我第一次访问该站点时,由于我没有经过身份验证,我会按预期重定向到登录页面。URL显示为http://localhost:63087/Account/Login?ReturnUrl=%2f . 登录后,我将被重定向回根目录并进入正确的显示模式。都很好

然而,URL并没有改变。它保持不变http://localhost:63087/Account/Login?ReturnUrl=%2f . 这是一个问题。现在,任何未来的导航都会变得混乱,并将我发送回登录页面,即使我已经登录并通过了身份验证

如何解决这个问题

如何使具有多种显示模式的ASP.NET MVC 4应用程序与表单身份验证一起正常工作


谢谢。

我只是想知道你是否注意到了下面的内容,这可能与感谢无关。不,我不知道那个bug和后续补丁。这可能是答案。