2012-09-05 2 views

답변

5

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(); 

이렇게하면 도메인 서버에서 모든 레코드를 가져올 수 있습니다.

관련 문제