Главная страница
    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.011 c
1-56609
Alex-21
2003-11-03 21:39
2003.11.17
SelWindowsPos


1-56659
Raduga
2003-11-05 11:22
2003.11.17
Процессы и СОМ-объекты


14-56896
K .o.Z
2003-10-25 12:39
2003.11.17
Интернет


1-56596
RoLeX
2003-11-06 02:34
2003.11.17
Есть ли какой-нибудь тип переменной который больше Integer ??


14-56821
Zemmel
2003-10-21 20:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский