PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : User-Mitgliedschaft via Global Catalog und LDAP


thamubber
09.05.2007, 22:46
Hallo zusammen,

Ich schreibe gerade eine Anwendung welches die Gruppenmitgliedschaft ("MemberOf") von bestimmten Usern im AD herausfinden muss.

Vorgehensweise:

DirectoryEntry vom User finden:

DirectorySearcher dirS = new DirectorySearcher();
1*) dirS.SearchRoot = new DirectoryEntry("LDAP://dc=domäne");
oder
2*) dirS.SearchRoot = new DirectoryEntry("GC://forest");

dirS.Filter = "(&(objectCategory=User) (samAccountName=" + username + "))";
result = dirS.FindOne();
..
entry = result.GetDirectoryEntry();




Mitgliedschaft holen:

IdentityReferenceCollection SidColl;
String[] tokgrp;
tokgrp = new String[] { "tokenGroups" };

entry.RefreshCache(tokgrp);

foreach (byte[] sidBytes in entry.Properties["tokenGroups"])
{
SidColl.Add(new SecurityIdentifier(sidBytes,0));
}




Nun zu meinem Problem:

Wenn ich die ganze Suche im Global Catalog (2*)durchführe bekomme ich bei User XY 8 Gruppenmitgliedschaften.

Wenn ich es aber mit einer LDAP Abfrage (1*) durchführe bekomme ich alle , in diesem Fall knapp 17, Gruppenmitgliedschaften.

Warum?

Im Prinzip müsste doch dasselbe Ergebnis zurückgelieftert werden oder?


Gruß

thamubber