Shaul Behr
Shaul Behr

Reputation: 38091

When is HttpContext.User.Identity set?

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

Answers (2)

tehshin
tehshin

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

Lasse
Lasse

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

Related Questions