![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
LogonUser не работает
aldapooh © (2003-08-26 14:46:00)
Почему я не могу залогиниться? Где ошибка? Все время возвращает False, хотя юзер с таким паролем на таком домене есть?
procedure TForm1.Button2Click(Sender: TObject);
var
Token: THANDLE;
le: integer;
Logged: boolean;
begin
//test purpose only
UserName:= "MyUserName";
Password:= "MyPassword";
Domain:= "MyDomain";
try
Logged:= LogonUser(PChar(UserName),PChar(Password),PChar(Domain),LOGON32_LOGON_ NETWORK,LOGON32_PROVIDER_WINNT50,Token);
except
le := GetLastError;
ShowMessage(IntToStr(le) + #13 + SysErrorMessage(le));
end;
end;
Какие дополнительные действия я должен предпринять до или после.
Спасибо!
AlexRush (2003-08-28 11:37:00) [1]
function TfrmConnect.ConnectSMdb: boolean;
var pDomain,
pUserName,
pPasswd:PChar;
_hToken:DWORD;
begin
result:=false;
..................
if not LogonUserA(pUserName,
pDomain,
pPasswd,
LOGON32_LOGON_NETWORK,
LOGON32_PROVIDER_DEFAULT,
_hToken)
then begin
SystemErrorMsg("LogonUser");
exit;
end;
if not ImpersonateLoggedOnUser(_hToken)
then begin
SystemErrorMsg("ImpersonateLoggedOnUser");
exit;
end;
end;
aldapooh (2003-08-27 10:43:00) [2]
Вот незадача?! Помогите балбесу :)
вызываю LogonUser и сразу обрабатываю GetLastError которая возвращает что "The system couldn find the environment that was selected" однако Logged:= LogonUser(...) равно True и также токен <> 0, то есть вроде как все нормально...
Важно ли это? И как с эти бороться?!
Спасибо!
aldapooh (2003-08-26 16:00:00) [3]
усе понял. был неправ. исправлюсь. :)
Reindeer Moss Eater (2003-08-26 15:38:00) [4]
но что конкретно мне надо предпринять...Вызвать GetLastError сразу после LogonUser
aldapooh (2003-08-26 15:31:00) [5]
я очень не хочу в орехи :))) но что конкретно мне надо предпринять...
getlasterror пишет the last operation completed succesfully
Reindeer Moss Eater (2003-08-26 15:17:00) [6]
If the function fails, the return value is zero. To get extended error information, call GetLastError.
aldapooh (2003-08-26 15:14:00) [7]
ну так дело в том что он пишет что все тип топ и последняя операции завершена успешна... а Logged как был false ак и остался... что-то я вообще ничего не понимаю...
Reindeer Moss Eater (2003-08-26 15:12:00) [8]
:)
aldapooh (2003-08-26 14:54:00) [9]
правильно ли я вас понял?
if Logged then
ShowMessage(inttostr(token)+" Logged")
else begin
ShowMessage(inttostr(token)+" Not Logged");
le := GetLastError;
ShowMessage(IntToStr(le) + #13 + SysErrorMessage(le));
end;
Е-Моё имя (2003-08-26 14:48:00) [10]
> Какие дополнительные действия
написать сообщение ошибки