AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi uLDAP: Protokollfehler? Wie mit LDAP verbinden?
Thema durchsuchen
Ansicht
Themen-Optionen

uLDAP: Protokollfehler? Wie mit LDAP verbinden?

Ein Thema von Phoenix · begonnen am 8. Jul 2008 · letzter Beitrag vom 8. Jul 2008
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

uLDAP: Protokollfehler? Wie mit LDAP verbinden?

  Alt 8. Jul 2008, 08: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
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: uLDAP: Protokollfehler? Wie mit LDAP verbinden?

  Alt 8. Jul 2008, 10:12
Hallo Sebastian,

dein ADsPath scheint falsch aufgebaut zu sein.

Auf meinen lokalen LDAP-Server greife ich so zu:

SQL-Code:
SELECT sn,givenName,departmentNumber
FROM 'LDAP://majestix/ou=accounting,o=sgi,c=us'
WHERE objectClass='inetorgperson'
Der Server lauscht auf dem well known port. Die searchbase liefert dir der Softerra LDAP Browser in der window caption.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#3

Re: uLDAP: Protokollfehler? Wie mit LDAP verbinden?

  Alt 8. Jul 2008, 10:54
Die Verbindung läuft jetzt (mittels ADSI und der AdsHlp Unit).

Ich kann zumindest mal alle o= - Einträge unterhalb meiner dc-Angaben auflisten.
Jetzt muss ich mich halt in die Objekte einarbeiten. Eigentlich sind die Elemente die ich da aufliste selber Container und enthalten weitere Childs - aber auf dem Container erhalte ich irgendwie keinen Enumerator...

Und insbesondere ein QueryInterface auf IAdsContainer klappt nicht (Interface wird nicht unterstützt), was mich wundert. Weil es dort definitiv Childs gibt

Edit Nachtrag: Ah, geht nu. Irgendwas hatte sich verklemmt - jetzt nach der Mittagspause läuft es so wie es soll *g*
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz