Context.User.Identity.Name在MVC 4中返回null

时间:2013-03-17 13:30:05

标签: c# asp.net-mvc-4

我正在设置表单身份验证cookie,如下所示

FormsAuthentication.SetAuthCookie("test", true);

当我检查它的设置是否返回null ...

Context.User.Identity.Name

为什么会发生这种情况的任何想法?感谢

1 个答案:

答案 0 :(得分:4)

设置表单身份验证cookie后,您应始终重定向:

public ActionResult SomeAction()
{
    FormsAuthentication.SetAuthCookie("test", true);    
    return RedirectToAction("FooBar");
}

只有在您重定向到的后续操作中,您才能正确初始化User.Identity.Name。原因很简单:User.Identity.Name属性是从Request cookie(也就是传入的cookie)初始化的,而FormsAuthentication.SetAuthCookie是将表单身份验证设置为响应(也就是发出cookie),以便后续请求此cookie将在请求中发送。