当前位置:  开发笔记 > 编程语言 > 正文

如何在C#Web应用程序中找到用户的Active Directory显示名称?

如何解决《如何在C#Web应用程序中找到用户的ActiveDirectory显示名称?》经验,为你挑选了2个好方法。

我正在编写一个使用Windows身份验证的Web应用程序,我很乐意使用以下内容获取用户的登录名:

 string login = User.Identity.Name.ToString();

但我不需要他们的登录名我想要他们的DisplayName.我现在已经敲了几个小时了...

我可以通过Web应用程序访问我组织的AD吗?



1> 小智..:

这个怎么样:

private static string GetFullName()
    {
        try
        {
            DirectoryEntry de = new DirectoryEntry("WinNT://" + Environment.UserDomainName + "/" + Environment.UserName);
            return de.Properties["displayName"].Value.ToString();
        }
        catch { return null; }
    }



2> Panos..:

请参阅相关问题:Active Directory:检索用户信息

另请参阅:Howto :(几乎)通过C#在Active Directory中的所有内容,更具体地说," 枚举对象的属性 "部分.

如果您有路径连接到域中的组,则以下代码段可能会有所帮助:

GetUserProperty("", "DisplayName");

public static string GetUserProperty(string accountName, string propertyName)
{
    DirectoryEntry entry = new DirectoryEntry();
    // "LDAP://CN=, CN =, DC=, DC=,..."
    entry.Path = "LDAP://...";
    entry.AuthenticationType = AuthenticationTypes.Secure;

    DirectorySearcher search = new DirectorySearcher(entry);
    search.Filter = "(SAMAccountName=" + accountName + ")";
    search.PropertiesToLoad.Add(propertyName);

    SearchResultCollection results = search.FindAll();
    if (results != null && results.Count > 0)
    {
        return results[0].Properties[propertyName][0].ToString();
    }
    else
    {
            return "Unknown User";
    }
}

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有