Вверх ↑
Этот топик читают: Гость
Ответов: 17
Рейтинг: 0
#1: 2017-01-20 15:58:51 ЛС | профиль | цитата
Доброго времени суток!
Пытаюсь реализовать проверку в домене через программу для дальнейшей работы в этой программе. Нашёл код Делфи, но не получается интегрировать в InlineCode. Помогите!



Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,91,98)
{
Width=310
Height=116
Caption="Windows Authenticate"
BorderStyle=3
Position=1
}
Add(InlineCode,633601,273,98)
{
WorkPoints=#18:doTest=Òåñòèðîâàòü|
EventPoints=#21:onLog=Âûâîä ñîîáùåíèé|
DataPoints=#14:UserName=Ëîãèí|15:Password=Ïàðîëü|12:Domain=Äîìåí|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|30:uses kol,windows, Share,Debug;|0:|48:function Test(username, password, domain): bool;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|21: Command: string;|47: UserName,Password,Domain,onLog :THI_Event;|46: procedure doTest(var dt:TData; idx:word);|5: end;|0:|14:implementation|0:|48:function Test(username, password, domain): bool;|3:var|21: resultstring: bool;|5:begin|0:|97:resultstring:= LogonUser(username,domain,password,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT)|0:|22: result:=resultstring;|4:end;|0:|29:procedure THiAsmClass.doTest;|35:var login,pass,strdomain,log: bool;|16: data: TData;|5:begin|40: login := ReadString(data,UserName,'');|40: pass := ReadString(data,Password,'');|43: strdomain := ReadString(data,Domain,'');|38: log := Test(login, pass, strdomain);|25: _hi_OnEvent(onLog,log);|4:end;|4:end.|
link(UserName,14007059:Text,[])
link(Password,11705908:Text,[(286,81)(321,81)])
link(Domain,15327989:Text,[(293,86)(363,86)])
}
Add(Edit,14007059,273,42)
{
Left=70
Top=5
Width=120
Text="Àäìèíèñòðàòîð"
}
Add(Label,14131695,77,42)
{
Left=5
Top=10
Width=33
Height=17
Caption="Login:"
}
Add(Label,5728002,84,49)
{
Left=5
Top=35
Width=53
Height=17
Caption="Password:"
}
Add(Edit,11705908,315,42)
{
Left=70
Top=30
Width=120
Text=""
}
Add(Button,13227859,168,98)
{
Left=205
Top=5
Width=85
Height=70
Caption="Ïðîâåðèòü"
link(onClick,633601:doTest,[])
}
Add(Label,12859943,91,56)
{
Left=5
Top=60
Width=43
Height=17
Caption="Domain:"
}
Add(Edit,15327989,357,42)
{
Left=70
Top=55
Width=120
Text=""
}
Add(Message,7864929,322,98)
{
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2017-01-20 19:42:31 ЛС | профиль | цитата
Поправил.
String на Integer 0/1 можешь поменять, bool нельзя на onLog подавать!

Add(MainForm,436777,238,161)
{
Width=310
Height=116
Caption="Windows Authenticate"
BorderStyle=3
Position=1
}
Add(InlineCode,633601,420,161)
{
WorkPoints=#6:doTest|
EventPoints=#5:onLog|
DataPoints=#8:UserName|8:Password|6:Domain|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|30:uses kol,windows, Share,Debug;|0:|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|21: Command: string;|25: UserName: THI_Event;|22: Password: THI_Event;|20: Domain: THI_Event;|19: onLog :THI_Event;|46: procedure doTest(var dt:TData; idx:word);|4: |5: end;|57: function Test(username, password, domain:PChar): String;|0:|1: |0:|14:implementation|0:|56:function Test(username, password, domain:PChar): String;|3:var|16:token: cardinal;|5:begin|0:|112:IF LogonUser(username,domain,password,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,token)then result:='Все ОК'|31:else result:='Данные ошибочны';|0:|0:|4:end;|0:|29:procedure THiAsmClass.doTest;|51:var login,pass,strdomain:PChar; //PChar String|11:log:String;|16: data: TData;|5:begin|44: login := PChar(ReadString(data,UserName));|44: pass := PChar(ReadString(data,Password));|47: strdomain := PChar(ReadString(data,Domain));|38: log := Test(login, pass, strdomain);|25: _hi_OnEvent(onLog,log);|4:end;|4:end.|
link(onLog,7864929:doMessage,[])
link(UserName,14007059:Text,[])
link(Password,11705908:Text,[(433,144)(468,144)])
link(Domain,15327989:Text,[(440,149)(510,149)])
}
Add(Edit,14007059,420,105)
{
Left=70
Top=5
Width=120
Text="Aaieieno?aoi?"
}
Add(Label,14131695,224,105)
{
Left=5
Top=10
Width=33
Height=17
Caption="Login:"
}
Add(Label,5728002,231,112)
{
Left=5
Top=35
Width=53
Height=17
Caption="Password:"
}
Add(Edit,11705908,462,105)
{
Left=70
Top=30
Width=120
Text=""
}
Add(Button,13227859,315,161)
{
Left=205
Top=5
Width=85
Height=70
Caption="I?iaa?eou"
link(onClick,633601:doTest,[])
}
Add(Label,12859943,238,119)
{
Left=5
Top=60
Width=43
Height=17
Caption="Domain:"
}
Add(Edit,15327989,504,105)
{
Left=70
Top=55
Width=120
Text=""
}
Add(Message,7864929,469,161)
{
}


Даже так:
if LogonUser(UserName,Domain,Password,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,token) then
begin
if ImpersonateLoggedOnUser(token) then ShowMessage ("ImpersonateLoggedOnUser done")
else ShowMessage("ImpersonateLoggedOnUser Error");
......
end;

Редактировалось 9 раз(а), последний 2017-01-20 21:58:39
карма: 6

0
2
Сообщение
...
Прикрепленные файлы
(файлы не залиты)