我创建了一个全新的ASP.NET MVC 5项目来测试[Authorize]属性FormsAuthentication.SetAuthCookie.我只是在一个动作中设置一个cookie(在我的Home控制器中):
public ActionResult About()
{
FormsAuthentication.SetAuthCookie("someUser", false);
Run Code Online (Sandbox Code Playgroud)
我限制访问另一个:
[Authorize]
public ActionResult Contact()
{
Run Code Online (Sandbox Code Playgroud)
当我启动我的网页并导航到时/home/contact,我被正确地重定向到登录页面.然后我去/home/about,拿到我的cookie,然后回到联系页面.但是我仍然被重定向到登录页面 - cookie没有验证/授权我.
在调试器中,HttpContext.User.Identity.IsAuthenticated == false当我多次加载About页面时(也就是说,即使在设置了auth cookie之后,它也从未将我视为已经过身份验证).
这里必须要做一些额外的步骤吗?我不应该为基本身份验证设置自己的IPrincipal,我应该吗?