How to get current Windows Login Name in C# Web APP?

后端 未结 3 1479
忘掉有多难
忘掉有多难 2020-12-20 20:38

How can I get the user name of Windows Login? I used these methods:

  • Environment.UserName
  • WindowsIdentity.GetCurrent().Name;

But, when I

相关标签:
3条回答
  • 2020-12-20 21:17

    Try Page.User.Identity.Name. This should be what you're looking for. This property is derived from HttpContext and represents the logged in user security information for the current HTTP request.

    If the result is null, then I would suspect that the IIS settings is not configured properly. Try the advice in the following links:

    http://forums.asp.net/t/1689878.aspx/1
    HttpContext.Current.User.Identity.Name is Empty

    0 讨论(0)
  • 2020-12-20 21:21

    Take a look at:

    https://richhewlett.com/2011/02/15/getting-a-users-username-in-asp-net/

    Here are the main examples from the link above:

    Scenario 1: Anonymous Authentication in IIS with impersonation off.

    HttpContext.Current.Request.LogonUserIdentity.Name  -> COMPUTER1\IUSR_COMPUTER1
    HttpContext.Current.Request.IsAuthenticated -> False
    HttpContext.Current.User.Identity.Name  -> –
    System.Environment.UserName -> ASPNET
    Security.Principal.WindowsIdentity.GetCurrent().Name    -> COMPUTER1\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    -> COMPUTER1\ASPNET
    

    Scenario 3: Anonymous Authentication in IIS, impersonation on

    HttpContext.Current.Request.LogonUserIdentity.Name  -> COMPUTER1\IUSR_COMPUTER1
    HttpContext.Current.Request.IsAuthenticated -> False
    HttpContext.Current.User.Identity.Name  -> –
    System.Environment.UserName -> IUSR_COMPUTER1
    Security.Principal.WindowsIdentity.GetCurrent().Name    -> COMPUTER1\IUSR_COMPUTER1
    

    Scenario 4: Windows Authentication in IIS, impersonation on

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

    Note:

    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.
    
    0 讨论(0)
  • 2020-12-20 21:42

    Use this System.Environment.GetEnvironmentVariable("UserName")

    0 讨论(0)
提交回复
热议问题