2016-04-07 3 views
0

ich eine Funktion Hexe haben versucht, ein Mitglied aus einer GruppeLDAP-Eigenschaft auf viele Werte enthält

Das Problem ist, zu entfernen, wenn Sie versuchen, ein Mitglied zu entfernen, ohne die Existenz in der Gruppe zu wissen, können Sie eine Ausnahme verursachen . Also versuche ich vorher seine Zugehörigkeit aufzuzählen.

Das Problem ist jetzt, dass die Elementeigenschaft nach 3000 Einträgen stoppt, und ich kenne keine Möglichkeit, mehr oder die nächsten 3000 Mitglieder dieser Gruppe zu bekommen.

Hier ist mein Code

DirectoryEntry target_group = new DirectoryEntry(LDAP_group_DN); 
if (target_group.Properties["member"].Contains(LDAP_member_to_remove_DN)) { 
    target_group.Properties["member"].Remove(LDAP_member_to_remove_DN); 
} 
target_group.CommitChanges(); 

target_group.Properties [ "member"] genau 3000 Einträge enthält, aber es ist um 7500.

als Abkürzung fix ich verwende die Abtrennungs Anweisung in Wirklichkeit in einem try/catch-Block ohne den .Contains() - Check, aber das scheint nicht korrekt/schön/richtig.

Kann mich jemand zum richtigen Weg führen?

PS: Ich kann die Struktur unseres Verzeichnisses nicht ändern. Dies ist eine Gruppe von RADIUS-Benutzern, die nicht in mehrere Gruppen aufgeteilt werden sollten!

Antwort

1

Statt alle Gruppenmitglieder zu bekommen, um zu bestimmen, ob der Benutzer ein Teil dieser Liste ist ich das memberOf/IsMemberOf Attribut verwenden würde (vorausgesetzt, dass Ihr Verzeichnis der diese Funktion unterstützt). Mit diesem Attribut erfahren Sie, ob ein Benutzer zu einer Gruppe gehört, ohne alle Gruppenmitglieder abzurufen.

This other answer könnte helfen.

+0

Ich werde es heute versuchen und Sie wissen lassen, ob unser MS AD dies unterstützt. – Daywalker

+0

Ich habe versucht, eine target_group.Properties ["memberOf"] zu tun. Entfernen (memberOf_DN); Aber es hat nicht funktioniert :((Der Server ist nicht bereit zu arbeiten ...). Ich denke, ich bleibe bei dem Versuch, catch Block für den Moment. Die MaxValRange-Anweisung ist etwas, das ich nicht richtig funktionieren noch funktioniert. – Daywalker