私は認証コードがあります:デバッグ文を入れることでHttpContext.User.Identityはいつ設定されますか?
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
が正しく設定されます。
この値はいつ設定されますか?あなたのコードから
なぜ単に手動でクッキーを作成し、それをレスポンスに追加するのかというだけの理由が考えられます。FormsAuthentication.SetAuthCookie()? –
また、認証Cookieを設定しようとしている場合、なぜHttpContextからユーザー名を取得する必要があるのだろうか?確かにAuth Cookieを設定しようとしている場合 - あなたはこのユーザーを「ログイン」したいと言っているのですが、ユーザー名がわからない場合はどうすればいいですか? –
@ニック - 理由は、これが一連の開発の最新のものであるからです。ここから戻ってくることができます:http://stackoverflow.com/q/6586156/7850 –