C#에서 로그인 한 사용자의 OU를 어떻게 얻을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/296466

  •  08-07-2019
  •  | 
  •  

문제

사용자의 전체 활성 DIRECORY LDAP 경로에서 현재 로그인을 얻는 메소드를 찾고 있습니다. 예를 들어

LDAP://CN=john.smith,OU=UK,OU=Sales,DC=Company,DC=local
도움이 되었습니까?

해결책

이 필터를 사용하여 LDAP 디렉토리 (예 : 광고)를 쿼리하십시오.

(&(objectCategory=user)(sAMAccountName=<user-logon-name-here>))

반환 된 물체의 DN은 당신이 찾고있는 것입니다.

이 같은:

DirectorySearcher ds = new DirectorySearcher();
string userName = WindowsIdentity.GetCurrent().Name;
string userFilter = "(&(objectCategory=user)(sAMAccountName={0}))";

ds.SearchScope = SearchScope.Subtree;
ds.PropertiesToLoad.Add("distinguishedName");
ds.PageSize = 1;
ds.ServerPageTimeLimit = TimeSpan.FromSeconds(2);
ds.Filter = string.Format(userFilter, userName);

SearchResult sr = ds.FindOne();
// now do something with sr.Properties["distinguishedName"][0]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top