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

本文关键字:返回 null MVC User Identity Name Context | 更新日期: 2023-09-27 18:04:34

我像这样设置表单认证cookie

FormsAuthentication.SetAuthCookie("test", true);

当我检查它是否设置时,它返回null…

Context.User.Identity.Name

你知道为什么会这样吗?由于

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

你应该总是在设置表单认证cookie后重定向:

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

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