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
LegendSERVER1\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.
This should work:
User.Identity.Name
Identity
returns an IPrincipal
Here is the link to the Microsoft documentation.