Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]


> Какие дополнительные действия

написать сообщение ошибки


Наверх

Титульная страница Поиск, карта сайта Написать письмо