2011-10-25 4 views
0

나는 Active Directory 사용자 DirectoryEntries 모음을 가지고 있으며 각 주소와 연관된 주소를 얻어야합니다. 나는의 라인을 따라 뭔가 사용하고 있습니다 :Active Directory DirectoryEntry의 Street Address 속성 검색

bool TryGetPropertyValue(DirectoryEntry de, string propertyName, out string propertyValue) 
    { 
     if (de.Properties.Contains(propertyName) && de.Properties[propertyName].Count > 0) 
     { 
      propertyValue = de.Properties[propertyName][0].ToString(); 
      return true; 
     } 
     propertyValue = string.Empty; 
     return false; 
    } 

을하지만 사용자의 주소를 얻을 것이다 propertyName의 값을 찾을 수 없습니다. 이 정보를 얻을 수있는 방법이 있습니까?

+0

http://stackoverflow.com/questions/5058261/how-to-get-update-contacts-withinactive-directory – Tariqulazam

+1

"주소", "주소 - 집", "등록 된 주소 "및"Street-Address "는 Windows AD의 User-class에있는 주소 관련 항목입니다. 그 중 하나를 시도해 볼 수 있습니다. 전체 목록은 http://msdn.microsoft.com/ko-kr/library/ms683980(v=VS.85).aspx에서 찾을 수 있습니다. – Falle1234

답변

3

DirectoryEntry de을 얻는 방법에주의하십시오. 순수한 LDAP 관점에서, 실제로 검색하고자하는 속성을 디렉토리 검색 중에 지정하는 것이 좋습니다. 나는 개발자와 대부분의 모든 속성 retreive해야한다고 가정 것을 알고 있지만,보기의 LDAP 포인트에서 너무 분명 아니다 :보기의 속성 이름 점에

/* Connection to Active Directory 
*/ 
string sFromWhere = "LDAP://WM2008R2ENT:389/dc=dom,dc=fr"; 
DirectoryEntry deBase = new DirectoryEntry(sFromWhere, "dom\\jpb", "root.123"); 

DirectorySearcher dsLookFor = new DirectorySearcher(deBase); 
dsLookFor.Filter = "(CN=user1 Users)"; 
dsLookFor.SearchScope = SearchScope.Subtree; 
dsLookFor.PropertiesToLoad.Add("cn"); 
// Add one line for each property you need. 
dsLookFor.PropertiesToLoad.Add("..."); 


SearchResultCollection srcUsers = dsLookFor.FindAll(); 

는 당신이 더 Active Directory Schema 및 SPECIALY All atributes를 참조 것 .

사용자 및 컴퓨터 Active Directory MMC의 입력 필드에 특성을 연결하려면 LDP.EXE (W2K8에서 기본 제공되며 W2K3의 ressource 키트에서 제공)를 사용할 수 있습니다. 또 다른 흥미로운 도구는 Apache Directory Studio입니다. 모든 플레이트 폼 (Linux (MAC), Microsoft)에서 작동하며 디렉토리 및 스키마를 탐색 할 수 있습니다.