Когда установлен 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
будет правильно установлен.
Итак, когда это значение устанавливается?
Ответы
Ответ 1
Имя HttpContext.User.Identity.Name будет установлено, если данный запрос содержит файл cookie аутентификации. В вашем случае cookie только что добавлен в ответ для браузера, чтобы его забрать. Браузер добавит файл cookie по следующим запросам, если он существует.
Ответ 2
Из вашего кода, похоже, вам придется позвонить:
FormsAuthentication.Authenticate(name, password)
или, если используется членство, следующее:
Membership.ValidateUser(name, password)