Ich habe einen WCF-Webdienst erstellt, um Benutzer- und Gruppeninformationen aus Active Directory zurückzugeben. Er funktioniert für die meisten Gruppen und Benutzer.
Ich verwende directoryEntry.Invoke("groups",null), um die Gruppen zurückzugeben, in denen ein bestimmter Benutzer Mitglied ist. Dies gibt MOST Gruppen zurück. Das Seltsame ist, dass ich jede Gruppe finden und ihre Mitglieder aufzählen kann, auch wenn sie eine der Gruppen ist, die fehlt, wenn ich die Abfrage "Invoke" auf eines ihrer Mitglieder anwende.
Die meisten Gruppen, die dieses Verhalten zeigen, sind Exchange-aktiviert. Die meisten problematischen Benutzerkonten sind für Benutzer in einer Verbunddomäne, die einen Exchange-Server in der Domäne verwenden, die ich abfrage. Ich versuche nicht, Objekte in der Verbunddomäne abzufragen.
Meine bisherigen Theorien:
-
einige Sicherheitseinschränkungen erlauben es nicht, alle Gruppen über invoke() aufzuzählen, obwohl ich fehlende Gruppen abfragen und ihre Mitglieder aufzählen kann.
-
Aufruf hat Probleme mit einer Untergruppe von Gruppen. Vielleicht sind universelle, dynamische oder Exchange-aktivierte Eigenschaften im Spiel
-
Die Aufrufmethode erfasst nicht alle Gruppen, da sich die "föderierten" Konten (die im Rahmen der Einrichtung des Exchange-Kontos erstellt wurden) in gewisser Weise von normalen Domänenkonten unterscheiden, abgesehen von der sid-Zuordnung zu ihrer Anmeldedomäne.