繁体   English   中英

MVC 3表单身份验证在Internet Explorer中不起作用会保持重定向到登录页面

[英]MVC 3 Forms Authentication not working in Internet Explorer keeps redirecting to login page

我在ASP.NET MVC 3中实现了一些可爱的表单身份验证,这在Chrome中运行得非常好。 现在是世界上最糟糕的浏览器Internet Explorer的时间测试。 我只是简单地进入登录,每次单击提交按钮时页面都会返回到登录页面。 凭证是正确的。 我已经介绍了代码,我正在使用RedirectToAction到页面,并且没有错误被标记它只是直接返回登录页面。

我应该指出我已经尝试过以下方法:

  • 删除了webmatrix dll和dependancies
  • 删除了System.Web.Helpersn
  • 这些都已从VS2010中的bin,引用和bin_deploayableAssemblies文件夹中删除

我还将以下内容添加到web.config appsettings:

<add key="enableSimpleMembership" value="false" />
<add key="autoFormsAuthentication" value="false" />
<add key="loginUrl" value="~/LoginReg/LogOn"/>

这是我的完整web.config:

http://pastebin.com/t6cj6cSb

我应该指出我的登录页面位于一个名为Login Login的文件夹中,因此url将是/ LoginReg / LogOn。

这在chrome中完美运行,但由于某些原因,它在Internet Explorer中不起作用。

有没有人有任何想法来解决这个非常恼人的问题或有任何有用的文章

谢谢

表单身份验证创建一个http cookie以维护请求之间的身份验证状态 确保在IE中启用了Cookie。

我找到了一个奇怪的解决方案,在我的情况下,我有一个MVC3解决方案,当然我的问题与原始帖子相同,我做的很奇怪:

  1. 我将LogOn get / post方法重命名为LoginPageView
  2. 当然,我为LoginPageView Controller操作创建了相应的VIEW

     [HttpGet] public ActionResult LoginPageView() { return View(); } 
  3. 我跑了,我可以重定向到解决方案上的任何其他控制器操作,当然在我需要的方法上处理[Authorize]或不授权属性。

  4. 问题解决了。

这是通过向FilterConfig.cs文件添加全局过滤器来解决我的问题的解决方案。

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
       filters.Add(new AuthorizeAttribute());
    }
}

现在登录与Internet Explorer和Microsoft Edge浏览器完美配合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM