Я запрашиваю ADSI, используя поставщика WINNT с кодом, подобным следующему:
var
User : IADSUser;
begin
User := GetObject('WinNT://'+domainname+'/'+username + ', user') as IADSUser;
...
...
, где GetObject определен как:
function GetObject (const Name : string): IDispatch;
var
Moniker : IMoniker;
Eaten : integer;
BindContext : IBindCtx;
Dispatch : IDispatch;
begin
OleCheck( CreateBindCtx( 0, BindContext ) );
OleCheck( MkParseDisplayName( BindContext, PWideChar( WideString( Name ) ), Eaten, Moniker ) );
OleCheck( Moniker.BindToObject( BindContext, NIL, IDispatch, Dispatch ) );
Result := Dispatch;
end;
Это работает уже несколько летбез проблем у меня есть одна установка, хотя, где в определенном домене, я получаю ошибку Сетевой путь не найден при запросе от другой домен.Эта настройка имеет 4 разных домена.Между доменами существует полное доверие, и запрос работает на домене-нарушителе при запросе из домена.Это просто когда это пробуют с одного из других доменов.Можно запросить домен с помощью ряда других инструментов, так что все выглядит нормально.Любые идеи, почему этот конкретный домен может создать эту проблему?