我正在设置表单身份验证cookie,如下所示
FormsAuthentication.SetAuthCookie("test", true);
当我检查它的设置是否返回null ...
Context.User.Identity.Name
为什么会发生这种情况的任何想法?感谢
答案 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将在请求中发送。