Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#1

uLDAP: Protokollfehler? Wie mit LDAP verbinden?

  Alt 8. Jul 2008, 09:08
Hi,

ich benutze die wldap32.dll (via diesem Artikel / dieser Unit (uLdap.pas)).
Nur wenn ich auf den LDAP-Server (openldap) verbinden will, schmeisst mir das Ding immer eine Exception alá 'Protokollfehler'. Ich brauche hier übrigens nur lesenden Zugriff (ohne Benutzerkonto, und ja: das Directory erlaubt den anonymen Zugriff).

Background - weil die Frage in anderen Threads des öfteren auftrat: LDAP = Lightweight Directory Access Protokoll. LDAP ist das Protokoll, mit dem man solche Verzeichnisse (im Prinzip eine hierarchische Datenbank), auslesen und verändern kann.

Eine ADO-Verbindung zum LDAP (wie z.B. mit diesem Artikel hier) will auch nicht klappen. Hier behauptet er immer, die "Tabelle" sei nicht vorhanden. Als Statement benutze ich
Code:
SELECT displayname FROM ‘LDAP://dc=meine,dc=Angaben’
. Die dc-Angaben sind korrekt, da ich z.B. mit dem Softerra LDAP Browser mit den gleichen Angaben einwandfrei verbinden und durch das LDAP browsen kann.

Wer hat mir einen Link wie ich mit möglichst Hausmitteln (bzw. möglichst freien Units) auf einen OpenLDAP-Server zugreifen kann? Oder noch besser, wie ich den Protokollfehler verhindern kann den mir die uLDAP schmeisst?

Ziel ist es ein kleines Tool zu haben, welches Daten aus dem LDAP-Master in unsere Datenbank kopiert und später regelmäßig aktualisiert. Wenn der Aufwand zu groß wird, dann schreiben wir zur Not dieses Tool in C#. In Delphi wär halt schöner, da wir das dann gleich in die Anwendung packen könnten...

Edit Nachtrag: Ich habe jetzt auch ADSI probiert. Nur anscheinend kann das ActiveX-Gedöns von Microsoft nicht mit OpenLDAP-Servern sprechen. Hier bekomme ich immer den fehler, dass der übermittelte Verzeichnispfad ungültig sei. Angaben waren: ldap://server:port/dc=meine,dc=Angaben [bzw. auch gestestet: WinNT:// als Protokoll und server jeweils mit und ohne Portangabe, also alle möglichen Kombinationen]. Ist LDAP mit Delphi wirklich so kompliziert? In .NET sind das nur ein paar Zeilen...
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat