Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.17;
Скачать: CL | DM;

Вниз

LogonUser, а что дальше?   Найти похожие ветки 

 
SergeySK   (2003-09-08 23:32) [0]

Здравствуйте, уважаемые мастера. Как сделать в своей программе работу от определенной учетной записи (отличной от учетной записи пользователя, запустившего прогу). Добрался до LogonUser, но вот что нужно сделать с полученным токеном? Помогите, пожалуйста.


 
ZZ   (2003-09-09 00:14) [1]

нужно сделать CloseHandle, т.к. я так понял, что он тебе не нужен ... точнее нужен, но ты не знаешь зачем :-))

Как вариант еще можно сделать
ImpersonateLoggedOnUser
CreateProcessAsUser
и кучу других гадостей


 
Руслан   (2003-09-09 09:15) [2]

Я бы для такой цели использовал runas.exe и не выдумывал бы ничего.


 
AlexRush   (2003-09-09 10:56) [3]

А потом ImpersonateLoggedOnUser(hToken)


 
SergeySK   (2003-09-09 21:30) [4]

Нужна мне эта штука, чтобы моя программа, под кем бы она запущена ни была, всегда имела доступ к определенному сетевому ресурсу (зашареному на определенный логин). И надо мне это не в отдельно запускаемом процессе от нужного логина, а чтоб внутри нее самой это было реализовано. ImpersonateLoggedOnUser(hToken) использовал, но последствий не ощутил - как не было доступа к сетевому ресурсу, так и не стало. LogonUser вроде нормально проходит, может, параметры внутри него какие особые нужно указать?


 
Игорь Шевченко   (2003-09-10 12:35) [5]

А код где ?


 
SergeySK   (2003-09-16 00:21) [6]

Извинияюсь за задержку... Вот код:

procedure TForm1.Button1Click(Sender: TObject);
var SI:_STARTUPINFOA;
PI:_PROCESS_INFORMATION;
UserName,Domain,Password,AppName: PChar;
PH: Cardinal;
PT: PHandle;
begin
SI.cb:=sizeof(_STARTUPINFOA);
SI.lpReserved:=nil;
SI.lpDesktop:=nil;
SI.lpTitle:=nil;
SI.cbReserved2:=0;
UserName:="UserLogin";
Domain:="Domain";
Password:="LoginPassword";
if LogonUser(UserName,Domain,Password,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,PH) then
begin
if ImpersonateLoggedOnUser(PH) then ShowMessage ("ImpersonateLoggedOnUser done")
else ShowMessage("ImpersonateLoggedOnUser Error");
//Далее пытаюсь копировать с зашаренного ресурса:
if CopyFile("\\comp\folder\test_file.txt","C:\test_file.txt",false) then ShowMessage("Copy OK")
else ShowMessage("Copy Error");
end;

Вроде и LogonUser, и ImpersonateLoggedOnUser проходят нормально, но все-равно CopyFile возвращает false;


 
Игорь Шевченко   (2003-09-16 12:06) [7]

Осталось выводить результат функции GetLastError после неудачного завершения вызовов


 
clickmaker   (2003-09-16 12:22) [8]

или Win32Check(CopyFile(


 
SergeySK   (2003-09-16 20:29) [9]

Но почему доступа-то нет? :(


 
Игорь Шевченко   (2003-09-17 11:11) [10]


> Но почему доступа-то нет? :(


Где нет доступа ?


 
Nikolay M.   (2003-09-18 11:04) [11]


> SergeySK (09.09.03 21:30) [4]

А почему бы просто не подключиться к нужному сетевому ресурсу с другим логином/паролем? net use прекрасно это делает.


 
SergeySK   (2003-09-22 21:54) [12]

Все, всем огромное спасибо, разобрался, заработало. Только вместо LOGON32_LOGON_NETWORK надо было LOGON32_LOGON_INTERACTIVE поставить.



Страницы: 1 вся ветка

Текущий архив: 2003.11.17;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.008 c
14-56888
Balepa
2003-10-26 00:50
2003.11.17
Прога зацик-тся


1-56601
solo
2003-11-04 23:23
2003.11.17
Хитрый AccessViolation


1-56765
Mistic
2003-11-06 13:37
2003.11.17
копирование файлов с Progress Bar


3-56457
Uran
2003-10-29 11:20
2003.11.17
Сортировка в TTable


3-56438
Bless
2003-10-24 16:20
2003.11.17
Какое событие при переводе ячейки грида в режим редактирования?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский