从Active Directory检索用户名

时间:2016-11-23 18:08:11

标签: c# asp.net active-directory iprincipal

我正在尝试从Active Directory检索用户名。我发现这段代码可以尝试,它无法识别User的{​​{1}}部分。我已经看过是否需要添加另一个引用或汇编但是我还没有看到任何东西。有没有更好的方法从Active Directory获取用户名?

User.Identity.Name

2 个答案:

答案 0 :(得分:1)

您可以使用 WindowsIdentity.GetCurrent

using System.Security.Principal;

static string GetUserName()
{
    WindowsIdentity wi = WindowsIdentity.GetCurrent();

    string[] parts = wi.Name.Split('\\');

    if(parts.Length > 1) //If you are under a domain
        return parts[1];
    else
        return wi.Name;
}

<强>用法:

string fullName = GetUserName();

很高兴为您服务!

答案 1 :(得分:0)

怎么样:

public string GetUserName()
{
    string name = "";

    using (var context = new PrincipalContext(ContextType.Domain))
    {
        var usr = UserPrincipal.Current;

        if (usr != null)
        {
            name = usr.DisplayName;
        }
    }
}