2016-10-24 3 views
-1

Meine .Net 4.5 C# -Anwendung fragt einen MS AD-Server über LDAP mit DirectoryServices.Protocols ab. Eine der Abfragen muss alle Benutzer für eine bestimmte AD-Gruppe finden, das eine extern bereitgestellten Filterzeichenfolge wie folgt aus:Kann ich meine LDAP-Suche fehlschlagen lassen, wenn der Gruppeneingabefilter nicht existiert?

(&(objectclass=user)(objectcategory=person)(memberof=CN=Gorillas,OU=Users,DC=example,DC=local)) 

Wenn die gegebene Benutzergruppe nicht in dem AD-Baum vorhanden ist, mag ich die Abfrage fehlgeschlagen. Momentan gibt es nur 0 Ergebnisse zurück.

Gibt es eine Möglichkeit, die Abfrage oder den Filter zu ändern oder LDAP-Steuerelemente hinzuzufügen, damit der AD-Server diese Abfrage nicht bestehen kann, wenn die Gruppe nicht existiert?

Eine Alternative, die ich mir vorstellen kann, ist das Parsen der bereitgestellten Filterzeichenfolge und das Abrufen aller "memberof" -Gruppen und das Ausführen separater Abfragen an den AD-Server, um deren Existenz zu überprüfen, aber ich würde den Filter lieber parsen lassen um Fehler zu vermeiden.

+0

Nein, Sie können die LDAP-Semantik nicht ändern. Sie sind bereits definiert. – EJP

Antwort

0

Nein, es ist nicht möglich, einen Fehler von LDAP zurückzuerhalten, wenn die Suche erfolgreich ist, aber kein Ergebnis liefert. Der einzige Fall, in dem Sie einen Fehler für einen Suchfilter erhalten können, ist, wenn der Filter ungültig ist.

Verwandte Themen