How to get user name using Windows authentication in asp.net? How to get user name using Windows authentication in asp.net? asp.net asp.net

How to get user name using Windows authentication in asp.net?


You can get the user's WindowsIdentity object under Windows Authentication by:

WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;

and then you can get the information about the user like identity.Name.

Please note you need to have HttpContext for these code.


These are the different variables you have access to and their values, depending on the IIS configuration.

Scenario 1: Anonymous Authentication in IIS with impersonation off.

HttpContext.Current.Request.LogonUserIdentity.Name    SERVER1\IUSR_SERVER1 HttpContext.Current.Request.IsAuthenticated           False                    HttpContext.Current.User.Identity.Name                –                        System.Environment.UserName                           ASPNET                   Security.Principal.WindowsIdentity.GetCurrent().Name  SERVER1\ASPNET

Scenario 2: Windows Authentication in IIS, impersonation off.

HttpContext.Current.Request.LogonUserIdentity.Name    MYDOMAIN\USER1   HttpContext.Current.Request.IsAuthenticated           True             HttpContext.Current.User.Identity.Name                MYDOMAIN\USER1   System.Environment.UserName                           ASPNET           Security.Principal.WindowsIdentity.GetCurrent().Name  SERVER1\ASPNET

Scenario 3: Anonymous Authentication in IIS, impersonation on

HttpContext.Current.Request.LogonUserIdentity.Name    SERVER1\IUSR_SERVER1 HttpContext.Current.Request.IsAuthenticated           False                    HttpContext.Current.User.Identity.Name                –                        System.Environment.UserName                           IUSR_SERVER1           Security.Principal.WindowsIdentity.GetCurrent().Name  SERVER1\IUSR_SERVER1 

Scenario 4: Windows Authentication in IIS, impersonation on

HttpContext.Current.Request.LogonUserIdentity.Name    MYDOMAIN\USER1HttpContext.Current.Request.IsAuthenticated           True          HttpContext.Current.User.Identity.Name                MYDOMAIN\USER1System.Environment.UserName                           USER1         Security.Principal.WindowsIdentity.GetCurrent().Name  MYDOMAIN\USER1

Legend
SERVER1\ASPNET: Identity of the running process on server.
SERVER1\IUSR_SERVER1: Anonymous guest user defined in IIS.
MYDOMAIN\USER1: The user of the remote client.

Source


This should work:

User.Identity.Name

Identity returns an IPrincipal

Here is the link to the Microsoft documentation.