1
我正在使用WindowsIdentity.Impersonate
以便從遠程註冊表讀取。但是,正在讀取註冊表的實際代碼位於Task
代表中,因此它可能運行在不同的線程上。我的問題是在UI線程中冒充是否合法並在線程池中執行提升的作業?Windows模擬和TPL
UPDATE:
// get userHandle from LogonUser(...)
Task task = Task.Run(() =>
{
using (impersonationContext = WindowsIdentity.Impersonate(userHandle))
{
// Do stuff here
if (impersonationContext != null)
{
impersonationContext.Undo();
}
}
}
你是什麼意思*合法*? –
我的意思是即使它在我的第一次嘗試中有效,在某些情況下它也不會失敗。嘗試瞭解模擬是否應用於當前線程或所有線程/進程。 – Pablo