3
asp.net C#의 Active Directory 서버에서 모든 레코드를 가져올 수 있습니까?Asp.net에서 LDAP를 사용하여 Active Directory에서 사용자를 검색하는 방법 C#
asp.net C#의 Active Directory 서버에서 모든 레코드를 가져올 수 있습니까?Asp.net에서 LDAP를 사용하여 Active Directory에서 사용자를 검색하는 방법 C#
는 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();
이렇게하면 도메인 서버에서 모든 레코드를 가져올 수 있습니다.