【发布时间】:2011-07-06 10:11:26
【问题描述】:
我有验证码:
var authTicket = new FormsAuthenticationTicket(/*blahblah....*/);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(authTicket));
Response.Cookies.Add(cookie);
var name = HttpContext.User.Identity.Name; // line 4
通过放入调试语句,我发现第 4 行的name 是空的。但下次我在此浏览器会话上进行调用时,HttpContext.User.Identity.Name 已正确设置。
那么这个值什么时候设置?
【问题讨论】:
-
只是想知道为什么要手动创建 cookie 并将其添加到响应中,而不是仅仅调用:FormsAuthentication.SetAuthCookie()?
-
还想知道如果要设置 Auth cookie,为什么需要从 HttpContext 获取用户名?当然,如果你要设置一个 Auth cookie - 你是说你想将此人设置为“登录” - 如果你还不知道他们的用户名,你怎么能这样做?
-
@Nick - 原因是因为这是一系列开发中的最新进展,您可以从这里跟进:stackoverflow.com/q/6586156/7850
标签: .net asp.net asp.net-mvc