Wie wissen, ob mein DirectoryEntry ist wirklich verbunden mit meinem LDAP-Verzeichnis?
Ich bin die Verbindung zu einem LDAP-Verzeichnis in C#, also ich habe mit der DirectoryEntry-Klasse.
Wenn Sie die "new DirectoryEntry" mit Adresse, login und Passwort-es soll eine Verbindung zu dem LDAP-Verzeichnis.
Jedoch, auch wenn die Verbindung nicht funktioniert, gibt es ohne problem, und die directoryentry-variable gesetzt ist.
Also ich weiß ich weiß, meine Verbindung ist wirklich eröffnet ? Gerade jetzt, ich bin mit einem sehr, sehr hässlicher hack : ich habe eine "wenn(mydirectory.SchemaEntry)", die eine Ausnahme generiert, wenn die Verbindung nicht etablierten, weil einige der Mitglieder des DirectoryEntry, wie SchemaEntry, sind nicht festgelegt, wenn die Verbindung fehlgeschlagen ist. Aber 1:das muss 11/10 über die Hässlichkeit-Skala 2:das braucht viel Zeit, bevor der Vorgang abgebrochen.
Also, was ist der gute Weg, dies zu tun ? Sicherlich, Microsoft müssen über etwas (auch wenn ich mich mit einem LDAP-Verzeichnis und nicht in einer Active Directory), um zu wissen, ob ich das wirklich angeschlossen ?
InformationsquelleAutor Ksempac | 2009-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur "newing" ein DirectoryEntry-tut NICHT erstellen Sie eine Verbindung zum LDAP-store.
Nur, sobald Sie anfangen, über Ihre Eigenschaften, oder wenn Sie Zugriff auf die
.NativeObject
Eigenschaft explizit, werden Sie tatsächlich eine Verbindung zu dem LDAP-store.Um sicherzustellen, dass Sie verbunden sind, Lesen Sie einfach den
(DirectoryEntry).NativeObject
in einem try...catch-Klausel -, wenn es Bomben aus, haben Sie ein problem, sonst wird Ihre Verbindung ist jetzt eingerichtet und aktiv.Leider, meines Wissens, es ist keine Eigenschaft oder Methode, die Sie aufrufen können, um herauszufinden, ob oder nicht Sie haben erfolgreich eine Verbindung zu LDAP mit DirectoryEntry.
Marc
Saubere Erklärung
InformationsquelleAutor marc_s
Können Sie überprüfen, DirectoryEntry.Eigenschaften.Zählen. Wenn es > 0, ist es ein gültiges Objekt. .Eigenschaften ist nie null - Sie werden in der Lage sein zu Lesen, der Graf, auch wenn Sie nicht angeschlossen sind, um eine gültige DirectoryEntry, und ein gültiges DE-haben immer mindestens eine Eigenschaft.
Kein try/catch oder Ausnahmen notwendig.
InformationsquelleAutor ScottBai
Ok so marc_s die Lösung war ungefähr das, was ich mache (außer ich war auf der Suche nach SchemaEntry und nicht NativeObject). Aber die timeout-Verzögerung viel zu lang ist (ausführen der Abfrage zu füllen Autovervollständigung Werte für ein Formular). Ich denke, dass ich eigentlich lieber zu behaupten, dass die Verbindung geöffnet ist und lassen Sie die Abfrage ausführen. So kann ich meinen eigenen, kleineren, timeout delay.
InformationsquelleAutor Ksempac
Können Sie überprüfen, DirectoryEntry.Eigenschaften.Zählen. Wenn es > 0,für ein gültiges Objekt.
Aber noch immer lassen sagen Ihrem LDAP-server ist down. Sie können nicht erkennen, es mit seinen Eigenschaften.Stattdessen können Sie fangen es mit der try-catch-block
Hoffe, dies hilft Ihnen
InformationsquelleAutor Seeni Abirami