Hallo zusammen,
ich habe mir die beiden Units für LDAP von
CodeCentral (die Ihr auch im Anhang findet) heruntergeladen. Die Verbindung und das auslesen zum LDAP-Server funktioniert wunderbar. Aber irgendwie bin ich zu blöd einem Object ein neues Attribute hinzuzufügen oder es zu modifizieren.
Mein bissheriger Versuch sieht so aus :
Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
var
ldapconnected : LdapConnection;
Entries: LdapEntryList;
ldapAttr: LdapEntry;
Attributes : LdapAttribute;
newAttr: LdapEntry;
begin
ldapconnected := LdapConnection.Create;
ldapconnected.Open('server.domain.de','cn=user,ou=container,o=container', 'password', 389);
Entries := LdapEntryList.Create;
ldapAttr := LdapEntry.Create;
ldapconnected.Search(Entries, 'ou=container,o=container'); // In der NDS suchen ab einem bestimmten Containers
Label1.Caption := Entries.GetDN(11); // Abrufen des Full Calified Name
ldapAttr := Entries.GetEntry(11); // Auslesen der Attribute von dem Object
ldapAttr.Add('l', 'Stuttgart'); // Dieser Wert soll hinzugefügt werden.
ldapconnected.Add(Entries.Entry[9]);
Label2.Caption := Entries.EntryValue[11, 'givenName', 0]; // Einzelne Attribute auslesen
Label3.Caption := Entries.EntryValue[11, 'fullName', 0]; // Einzelne Attribute auslesen
Label4.Caption := Entries.EntryValue[11, 'l', 0]; // Einzelne Attribute auslesen
Memo3.Lines.Text := ldapAttr.AsLDIF; // Eine LDIF - Ausgabe vom NDS-Object erstellen
Memo2.Lines := ldapAttr.NameList; // Anzeigen der dazugehörigen Attribute
Memo1.Lines.Text := Entries.Text; // Anzeigen des Suchergebniss
ldapAttr.Free; // ldapEntry wieder freigeben
Entries.Free; // ldapEntryList wieder freigeben
ldapconnected.Close; // LDAP - Verbindung schliessen
ldapconnected.Free; // LDAPConnection wieder freigeben
end;
Nur jedesmal bekomme ich eine EAccessViolation auf die Datei wldap32.dll. Nur weiß ich nicht warum. Könntet Ihr mit da weiterhelfen ?