Тони Кадуто предоставил мне решение Synapse:
Я вырезал этот материал из объекта аутентификации, который я создал, я не хочу публиковать все это, так как есть множество других не связанныхвсе в этом есть.
Это должно помочь вам, ключ состоит в том, чтобы объединить имя пользователя AD с '@ your.ad.domain.name'. После успешного связывания вы можете выполнить поиск в каталоге AD с помощьюпоставка базового DN и использование функции поиска модуля ldapsend.
Я обнаружил, что это быстрее, чем другие методы, и это надежно.Вам нужно получить транковую версию синапса, чтобы он работал с более поздними версиями delphi.
uses ldapsend
var
fldap:tldapsend;
fad_domain,ausername,apassword:string;
begin
ausername:='your AD username';
apassword:='your AD password';
fldap := TLDAPSend.Create;
fad_domain:= 'your.ad.domain';
fldap.TargetHost:=fad_domain;
//next line is the key to getting AD authentication working
fldap.UserName := ausername+'@'+fad_domain;
fldap.Password := apassword;
try
try
if fldap.Login then
if fldap.Bind then
begin
//user is succesfully authenticated at this point
end else
raise exception.Create('LDAP bind failed.');
except
on e:exception do
//whatever
end;
finally
fldap.logout;
freeandnil(fldap);
end;
end;
Спасибо Тони !!!!