Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.12.2014, 08:40
LLIEPXAH LLIEPXAH вне форума
Прохожий
 
Регистрация: 03.12.2014
Сообщения: 1
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию Авторизация в другом домене

Всем доброго времени суток. Прошу помочь.
Ситуация:
Есть 2 домена. Доверительных отношений нет. В обоих доменах настроена условная переадресация DNS запросов. В каждом домене есть учетная запись с админскими правами. (учетный записи и пароли различны).
Есть программа, которая позволяет включать\выключать usb (изменение значений реестра, переименование inf файлов). В домене №1 всё работает.
Задача.
В домене №1 запустить эту программу, которая бы позволила авторизоваться в домене №2 и запустить включение\отключение usb.
Пытаюсь запустить проверку авторизации в другом домене с помощью кода
Код:
procedure TEn_Dis_Usb.Button1Click(Sender: TObject);
var
  UserName,Password,DomainName:PAnsiChar;
  tolken:THandle;
  vReg: TRegistry;
begin
  UserName:=PAnsiChar(login.Text);
  Password:=PAnsiChar(Password1.Text);
  DomainName:=PAnsiChar(domain.Text);
  try
    if LogonUser(PChar(UserName),PChar(DomainName),PChar(Password),LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,tolken) then
    begin
      Beep;
      ImpersonateLoggedOnUser(tolken);
      ShowMessage('Авторизация успешно пройдена');
    end
        else   ShowMessage('Авторизация НЕ пройдена');
  finally
    CloseHandle(tolken);
  end;
end; 

Если я ввожу данные другого домена, то получаю сообщение, что авторизация не пройдена. Запускаю там где непосредственно работаю - авторизация пройдена. Подскажите куда копать, или что я делаю не так.
Пробовал соединиться с доменом через adoconnection:

Код:
procedure TEn_Dis_Usb.Button2Click(Sender: TObject);
var
i,j:integer;
f,sql:string;
res:string;
begin
ADOConnection2:=TADOConnection.Create(nil);
  with ADOConnection2 do
  begin
    ConnectionString:='Provider=ADsDSOObject;Password=sadmin;User ID=domainname\admin;Encrypt Password=False;Data Source=domain;Location=LDAP://domainname/Domain;Mode=Read;Bind Flags=0;ADSI Flag=1';
    Provider:='ADsDSOObject';
    LoginPrompt:=False;
    Connected:=True;
  end;
  AdoQuery2:=TADOQuery.Create(nil);
  AdoQuery2.SQL.Clear;
  AdoQuery2.SQL.Text:= 'select DistinguishedName from ''LDAP://DC=domainname, DC=domainname'+''' where CN='''+edit1.text+'''';
  AdoQuery2.Connection:=ADOConnection2;
  AdoQuery2.Open;
  AdoQuery2.Active:=true;
  DataSource2.DataSet:=AdoQuery2;
  Dbgrid1.DataSource:=DataSource2;
  res:='';
for i:=0 to DBGrid1.DataSource.DataSet.FieldCount-1 do
res:=DBGrid1.DataSource.DataSet.Fields[i].AsString;
Edit3.Text:=res;
AdoQuery2.Close;
AdoQuery2.Destroy;
ADOConnection2.Destroy;
end;

Выдает ошибку неверный логин или пароль.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter