1

我正在像下面这样设置表单身份验证cookie

FormsAuthentication.SetAuthCookie("test", true);

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

Context.User.Identity.Name

任何想法为什么会这样?谢谢

4

1 回答 1

4

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

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

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

于 2013-03-17T14:02:22.550 回答