繁体   English   中英

如何在Asp.net中使用LDAP在Active Directory中搜索用户C#

[英]How to Search User in Active Directory using LDAP in Asp.net C#

如何从asp.net c#中的Active Directory服务器获取所有记录?

LDAP中创建一个连接字符串,提供用户名密码 ,可以与服务器通信并具有管理员权限。

假设DC是me.com用户名密码是具有管理员权限的用户Id的密码。

   DirectoryEntry rootDSE = rootDSE = new DirectoryEntry("LDAP://OU="",OU=" ",dc="me",dc=com", username, password);

    DirectorySearcher search = new DirectorySearcher(rootDSE);

    search.PageSize = 1001;// To Pull up more than 100 records.

     search.Filter = "(&(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))";//UserAccountControl will only Include Non-Disabled Users.
      SearchResultCollection result = search.FindAll();

         foreach (SearchResult item in result)
        {
            if (item.Properties["cn"].Count > 0)
            {
                DisplayName = item.Properties["cn"][0].ToString();
            }
            if (item.Properties["mail"].Count > 0)
            {
                EmailAddress = item.Properties["mail"][0].ToString();
            }
            if (item.Properties["SamAccountName"].Count > 0)
            {
                DomainName = item.Properties["SamAccountName"][0].ToString();
            }
            if (item.Properties["department"].Count > 0)
            {
                Department = item.Properties["department"][0].ToString();
            }
            if (item.Properties["title"].Count > 0)
            {
                title = item.Properties["title"][0].ToString();
            }
            if (item.Properties["company"].Count > 0)
            {
                company = item.Properties["company"][0].ToString();
            }
            if (item.Properties["DistinguishedName"].Count > 0)
            {
                memberof = item.Properties["DistinguishedName"][0].ToString();
            }
            if (item.Properties["AccountExpirationDate"].Count > 0)
            {
                string aaa = item.Properties["AccountExpirationDate"][0].ToString();
            }

              dt.Rows.Add(DisplayName, EmailAddress, DomainName, Department, title, company, memberof);
             DisplayName = string.Empty;
             EmailAddress = string.Empty;
             DomainName = string.Empty;
             Department = string.Empty;
             title = string.Empty;
             company = string.Empty;
             memberof = string.Empty;

               rootDSE.Dispose();

通过这种方式,我们可以从域服务器中提取所有记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM