Active Directory 사용자 가이드의 목록이 있으므로 특정보고를 위해 해당 사용자의 속성 집합을로드해야합니다. 이렇게하려면 각 Guid에 바인딩을 설정하면 비용이 많이 듭니다. DirectorySearcher와 상관없이 필터로 여러 Guid (예 : 1000)를 제공하고 속성을로드 할 수 있습니까?여러 Guid에 대한 DirectorySearcher
1
A
답변
0
현재 프로그래밍 방식으로 C#에서 수행하는 방법을 모르겠지만 원시 LDAP 쿼리를 작성하면 여러 인수가 AND 또는 OR로 결합되어 있는지 여부를 결정할 수 있습니다. 이렇게하려면 그룹을 열어야합니다 (보통 괄호 "("
사용). 그룹 내의 모든 요소가 AND또는 ORed "|"
이어야하는지 정의해야합니다. 당신은 너무 같은 LDAP 필터에 옥텟 스트링에 GUID를 변환 한 다음 삽입해야
(|(msExchMailboxGuid=\AD\26\05\EA\5D\C9LD\696\11\40\21\9BSM)
(msExchMailboxGuid=i8\162\97\39\B0G\BA\ABR\34\AD\1F\AB\9C)
(msExchMailboxGuid=\A3\99\AC\3A\2B\E8\82F\AB\19\FF\29h2W\0E))
0
: 여기
은 예입니다Guid guid = new Guid(); // your guid value
byte[] byteGuid = guid.ToByteArray();
string octetStr = byteGuid.Aggregate("", (current, b) => current + (@"\" + b.ToString("x2")));
string query = "(&(edsaapoguid=" + octetStr + ")(objectClass=user))";
string path = "LDAP://" + yourDomain.com + "/" + "OU=rootOU,DC=yourDomain,DC=com";
DirectoryEntry searchRoot = new DirectoryEntry(path, yourDomain + @"\" adminName, password);
DirectorySearcher searcher = new DirectorySearcher(searchRoot, query)
{
SearchScope = SearchScope.Subtree
};
SearchResultCollection results = searcher.FindAll();
가 그냥 궁금해서, 당신은 무엇을 사용할 수 있습니다 사용자를 고유하게 식별하는 GUID 외 (예 :'SAMAccountName','distinguishedName') – X3074861X
@ X3074861X 현재 사용자를 식별하기 위해 Guid 만 있습니다. – prabna