我创建了一个全新的ASP.NET MVC 5项目,FormsAuthentication.SetAuthCookie
测试[Authorize]
属性。我简单地设置一个cookie中的一个动作(在我的家庭控制器):FormsAuthentication.SetAuthCookie不[授权]在MVC 5
public ActionResult About()
{
FormsAuthentication.SetAuthCookie("someUser", false);
我限制进入另一个:
[Authorize]
public ActionResult Contact()
{
当我启动我的网页,并导航到/home/contact
,我是正确的重定向到登录页面。然后我去/home/about
,拿到我的cookie,然后回到联系页面。但我仍然被重定向到登录页面 - 该cookie不认证/授权我。
在调试器中,当我多次加载关于页面时(也就是说,即使在设置auth cookie之后,它从来没有认为我已经被认证),它就是HttpContext.User.Identity.IsAuthenticated == false
。
是否有必须在这里做了一些额外的步骤?我不应该为自己的基本身份验证设置自己的IPrincipal,是吗?
MVC5不再使用表单身份验证,请检查您的web.config中的 。如果你想使用它,请按照这篇文章,你可以使用owin来处理它。 http://blogs.msdn.com/b/webdev/archive/2013/07/03/understanding-owin-forms-authentication-in-mvc-5.aspx –
DSR
2014-10-28 16:37:54
经过对OWIN的一些研究,似乎这是更好的选项,看看微软如何朝着MVC 6的方向前进。我使用[无数据库的ASP.NET身份](https://github.com/leeenglestone/ASP.NET-Identity-Without-a-Database)作为一个如何验证和授权的例子。这比一个简单的'SetAuthCookie'复杂得多,但它似乎更具前瞻性。 – user655321 2014-10-29 16:49:03
男人,这是一堆doo doo。为什么微软会这么做? – Hill 2016-02-04 06:33:39