User.Identity.IsAuthenticated is false after successful login User.Identity.IsAuthenticated is false after successful login asp.net asp.net

User.Identity.IsAuthenticated is false after successful login


I had the same problem too. I forgot to set the web.config configuration.

Maybe you missed too.

   <system.web>     <authentication mode="Forms">      <forms loginUrl="~/user/login" timeout="1000" name="__Auth" />    </authentication>    </system.web> 


Because when you call FormsAuthentication.SetAuthCookie(txtUsername.Value, true); you store the key on the client's cookies. For this you need to do a response to the user.And for HttpContext.Current.User.Identity to be filled with cookie you need one more request.

In short your scheme looks like this:

  1. Client sends his UserName and Password.

  2. Server gets and checks it. If they are valid the server sends Set-Cookie header to the client.

  3. Client receives and stores it. For each request client sends cookies back to the server.

UPDATE for @Jake

Adding an example of setting User in HttpContext

var identity = new System.Security.Principal.GenericIdentity(user.UserName);var principal = new GenericPrincipal(identity, new string[0]);HttpContext.Current.User = principal;Thread.CurrentPrincipal = principal;  

Note that you could create your custom principal class inheriting from GenericPrincipal or ClaimsPrincipal


In my development environment case, requireSSL property was set to true, I fixed the problem by changing it to requireSSL = false.

enter image description here