2011-10-31 3 views
1

System.DirectoryServices 라이브러리를 사용하여 LDAP 디렉토리를 쿼리합니다. 모든 텍스트 속성이 잘 보입니다. 그러나 pwdChangedTime과 같은 일부 조작 특성을 검색해야합니다. 이러한 속성을 얻으려고 할 때 개체의 인스턴스 오류로 설정되지 않은 개체가 나타납니다.LDAP 쿼리 작동 특성

using (DirectorySearcher search = new DirectorySearcher(dirCon, 
        ldapSearchFilter.Replace("{cn}", cn), 
        new string[] {"*","+"}, 
        SearchScope.Subtree)) 
{ 
    foreach (SearchResult sr in search.FindAll()) 
    { 
     la = new LdapAccount(); 
     la.pswdUpdateTime = DateTime.ParseExact(sr.GetDirectoryEntry().Properties["pwdchangedtime"].ToString(), dateFormat, null); 
... 
} 

모든 텍스트 속성을 볼 수 있지만 작동 속성을 찾을 수 없습니다.

+0

@marc_s LDAP는 실제로 대소 문자를 구분하지 않습니다. 특히 속성 이름에서. – EJP

답변

1

로컬에서 일부 테스트를 수행 할 때 SearchResultpwdlastset 속성이 표시되므로 속성 이름이 예상 한 것과 다를지 궁금합니다.

result.Properties["pwdlastset"] 

이 유용 할 수있는의 SearchResult Properties 컬렉션에 PropertyNames 모음이 있습니다. 또한, 내가 전에 GetDirectoryEntry()을 호출하지 않았지만 SearchResult에서 직접 속성을 열거하기 전에 내가 광고를 질의했을 때.

+0

답장을 보내 주셔서 감사합니다. 혼란스러운 점은 PropertyNames 컬렉션 (및 기본 해시 테이블)을 보면 'pwdchangedtime'에 대한 항목이 표시되고 올바른 dateTime 값이 있다는 것입니다. 나는 왜 내가 컬렉션에서 이것을 추출 할 수 없다는 것을 모른다. – cobolstinks

+0

재미있다. 그래서'sr.GetDirectoryEntry(). Properties [ "pwdchangedtime"]. ToString()'은 예외를 던지고있는 조각입니까? 아니면 다른 라인일까요? 나는 당신이 DirectoryEntry에 대한 참조를 얻을 수 있고 Visual Studio에서 기본 속성을 볼 수 있다면 코드에서 똑같은 일을 할 수 있어야한다고 생각한다. – csm8118

+0

올바른 null 포인터가있다. 그것의 wierd. 그 특성이 돌아 오지 않는다면 널 포인터를 이해할 수 있지만 ... – cobolstinks

관련 문제