2016-08-05 60 views
0

Ich versuche, alle Benutzer in Gruppe "Programmierer" von AD zu erhalten.Erhalten Sie Active Directory-Benutzer in Gruppe

Wenn ich Verzeichniseintrag als LDAP://DC=Domain und Filter als memberOf=CN=Programmers,CN=Users,DC=Domain verwende, kann ich Benutzerliste erhalten.

Aber wenn ich direkt Eintrag als LDAP://CN=Programmers,CN=Users,DC=Domain verwenden, kann ich kein Ergebnis erhalten.

using (DirectoryEntry de = new DirectoryEntry(string.Format("LDAP://CN=Programmers,CN=Users,DC=Domain"))) 
using (DirectorySearcher ds = new DirectorySearcher(de)) 
{ 
    int pageIndex = PAGESIZE * nPage + 1; 
    ds.SearchScope = SearchScope.Subtree; 
    ds.Sort = new SortOption("samaccountname", SortDirection.Ascending); 
    ds.VirtualListView = new DirectoryVirtualListView(0, PAGESIZE - 1, pageIndex); 
    var results = ds.FindAll(); 
} 

Kann jemand sagen, warum?

Der Grund, warum ich diesen anstelle von "memberOf" -Filter verwenden möchte, ist die Leistungsüberlegung. Aber ich bin mir nicht sicher, ob dies tatsächlich die Leistung verbessert. Die zweite Frage lautet also: Gibt es einen Leistungsunterschied zwischen diesen beiden Methoden?

Antwort

0

Es endlich arbeitete ...

Der Code sollte sein:

ds.SearchScope = SearchScope.Base; 
ds.AttributeScopeQuery = "member"; 

Dann wird es funktionieren.