我有多线程应用程序,我想创建一个具有不同用户权限的线程(例如:多域管理员权限)。
但我找不到任何Win32 API CreateThread
来执行此操作。
如何使用特定用户权限创建线程?
感谢。
答案 0 :(得分:6)
使用CREATE_SUSPENDED
标志调用CreateThread(),然后调用SetThreadToken(),然后调用ResumeThread()。
答案 1 :(得分:2)
通过以指定用户身份登录线程,从您希望拥有特定用户权限的线程中调用此命令:
HANDLE hToken;
BOOL bRet = LogonUser("username","domain","password",
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,&hToken);
if(!bRet)
// Add your own fault handling here
return MessageBox(NULL,"Could not log on","Error",MB_OK|MB_ICONSTOP);
bRet = ImpersonateLoggedOnUser(hToken);
if(!bRet)
// Add your own fault handling here
return MessageBox(NULL,"Could not impersonate","Error",MB_OK|MB_ICONSTOP);