Reputation: 38091
I have authentication code:
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
By putting in debug statements, I find that name
on line 4 is empty. But the next time I make a call on this browser session, the HttpContext.User.Identity.Name
is correctly set.
So when does this value get set?
Upvotes: 27
Views: 31871
Reputation: 866
The HttpContext.User.Identity.Name will be set if the given Request contains the authentication cookie. In your case the cookie has just been added to the Response for the Browser to pick up. The Browser will add the cookie on the following requests if it exists.
Upvotes: 24
Reputation: 251
From your code it looks like you either would have to call:
FormsAuthentication.Authenticate(name, password)
or, if using Membership the following:
Membership.ValidateUser(name, password)
Upvotes: 2