2012-10-13 33 views
-1

我有一個2線程的程序。我希望第一個線程在USER_1的用戶權限下運行,第二個線程在Windows的USER_2下運行。當我以USER_1的身份登錄時,兩個線程都具有USER_1權限。我怎樣才能改變線程的用戶!?如何在c中更改線程用戶?

+0

你能解釋一下你準備做什麼嗎?你是否想要將角色分配給線程?你在使用.NET嗎? Win32的?還有其他的東西在一起嗎? –

+0

簡單地說,USER_1在第一個線程上創建一個文件夾。 USER_2不應該能夠在第二個線程上刪除該文件夾。 –

+0

@Pazis,USER_2可能會損壞USER_1線程堆棧並在USER_1的上下文中執行任何他們想要的操作,因爲它們共享一個地址空間 – bdonlan

回答

4

您需要使用SetThreadToken()將冒名令牌分配給線程。不過,這可能不是很微不足道。

+0

我該如何使用它!?請你舉個例子嗎? –

+1

我沒有現成的例子。在網上尋找一個。 –

+0

'SetThreadToken()'不是模擬用戶的唯一方法。還有'LogonUser()'和。例如,'ImpersonateLoggedOnUser()'。 –

相關問題