Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
11-56541
DvL
2003-02-27 06:38
2003.11.17
KOL&MCK


8-56782
Andry
2003-07-19 01:21
2003.11.17
как вывести картинку ???


6-56783
V-A-V
2003-09-23 14:40
2003.11.17
Созранение прикрепленных файлов !!!


3-56508
froland
2003-10-28 08:27
2003.11.17
Сумма поля


1-56666
Yanis
2003-11-05 10:15
2003.11.17
Prisoedinenie





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский