«Сетевой путь не найден» при использовании поставщика WinNT и Delphi для запроса ADSI - PullRequest
4 голосов
/ 08 августа 2011

Я запрашиваю 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 разных домена.Между доменами существует полное доверие, и запрос работает на домене-нарушителе при запросе из домена.Это просто когда это пробуют с одного из других доменов.Можно запросить домен с помощью ряда других инструментов, так что все выглядит нормально.Любые идеи, почему этот конкретный домен может создать эту проблему?

...