Подтвердить что ты не робот

Когда установлен 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

Полагая в операторах отладки, я обнаружил, что name в строке 4 пуст. Но в следующий раз, когда я сделаю звонок в этот сеанс браузера, HttpContext.User.Identity.Name будет правильно установлен.

Итак, когда это значение устанавливается?

4b9b3361

Ответ 1

Имя HttpContext.User.Identity.Name будет установлено, если данный запрос содержит файл cookie аутентификации. В вашем случае cookie только что добавлен в ответ для браузера, чтобы его забрать. Браузер добавит файл cookie по следующим запросам, если он существует.

Ответ 2

Из вашего кода, похоже, вам придется позвонить:

FormsAuthentication.Authenticate(name, password)

или, если используется членство, следующее:

Membership.ValidateUser(name, password)