Die Abfrage von LDAP_OPT_SSL liefert LDAP_LOCAL_ERROR.
Ob die Variable als NativeUInt, CARDINAL oder Pointer deklariert ist, spielt keine Rolle, die sind bei mir alle 32Bit.
Ich vermute, TLS is bereits aktiviert und deshalb steht die Option SSL nicht zur Verfügung.
Das bedeutet für mich, die Anleitung von MS ist nicht mehr aktuell oder unvollständig.
Im Quelltext "LDAPAdmin" wird die Option LDAP_OPT_SSL nicht benutzt und LDAP_LOCAL_ERROR an einer Stelle ignoriert:
Delphi-Quellcode:
if ldapSSL then
ldappld := ldap_sslinit(PChar(ldapServer), ldapPort,1)
else
ldappld := ldap_init(PChar(ldapServer), ldapPort);
if Assigned(pld) then
try
LdapCheck(ldap_set_option(pld,LDAP_OPT_PROTOCOL_VERSION,@ldapVersion));
if ldapSSL or ldapTLS then
begin
res := ldap_set_option(pld, LDAP_OPT_SERVER_CERTIFICATE, @VerifyCert);
if (res <> LDAP_SUCCESS) and (res <> LDAP_LOCAL_ERROR) then
LdapCheck(res);
CertServerName := PChar(ldapServer);
end;
CertUserAbort := false;
if ldapTLS then
begin
res := ldap_start_tls_s(ldappld, nil, nil, nil, nil);
if CertUserAbort then
Abort;
LdapCheck(res);
end;
case ldapAuthMethod of
Ich versuch diese Variante...