【问题标题】:How can i get the DomainName\AccountName with the .NET Framework?如何使用 .NET Framework 获取 DomainName\AccountName?
【发布时间】:2011-02-12 17:52:34
【问题描述】:

如何获得

域名\账户名

作为 .NET Framework 的字符串?

【问题讨论】:

    标签: .net vb.net dns account


    【解决方案1】:
    System.Security.Principal.WindowsIdentity.GetCurrent().Name;
    

    【讨论】:

    • +1,但实际上你不需要调用ToString(),因为Name 已经是字符串类型了。
    • @0xA3: 好点子——我觉得我在那儿有点得意忘形了:-)
    【解决方案2】:

    您可以使用Environment.UserDomainName 属性检索域并使用Environment.UserName 检索用户名:

    Dim domainAndUserName As String _
        = Environment.UserDomainName & "\\" & Environment.UserName
    

    【讨论】:

    • 不正确。 Environment.UserDomainName 只包含域,不包含用户名。
    • @CERIQ:对不起,我误读了文档并更正了我的答案。奇怪的是它仍然收到了赞成票......
    【解决方案3】:

    Environment.UserDomainName 包含您的帐户加入的域/计算机名称。 Environment.UserName 仅包含用户名。要获得您想要的结果,您需要连接变量 (Environment.UserDomainName & "\\" & Environment.UserName)。不过,这只适用于本地环境,如果您在网站中使用此代码,您将获得运行应用程序池的帐户名称。在 asp.net 中,请改用HttpContext.Current.User.Identity.Name

    【讨论】:

    • 在加入域名和用户名之前先检查域名是否不为空,以防本地用户。
    【解决方案4】:

    WindowsIdentity.GetCurrent().Name

    【讨论】:

      【解决方案5】:

      如果您使用的是 ASP.NET,则可以使用

      HttpContext.Current.User.Identity.Name;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-09
        • 2013-10-06
        • 2010-09-27
        • 1970-01-01
        相关资源
        最近更新 更多