//Q: Как процессу во время выполнения получить привилегии
//какого-либо пользователя?
//A: Надо переопределить контекст процесса
HANDLE hToken, hThread;
//Получаем новый контекст
if(LogonUser("uname", "domain", "upass", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken))
{
//Переопределяем контекст процесса
ImpersonateLoggedOnUser(hToken);
}
//Делаем то, что надо от имени этого пользователя
RevertToSelf();//Возвращаем процессу прежний контекст
CloseHandle(hToken);//Освобождаем дескриптор контекста
//Если пользователь локльный, то domain = "."
|