SeImpersonateClientEx 函式 (ntifs.h)
SeImpersonateClientEx 例程會導致線程模擬使用者。
語法
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
參數
[in] ClientContext
使用者安全性客戶端內容的指標。
[in, optional] ServerThread
模擬使用者之線程的指標。 如果未指定,則會使用呼叫線程。
傳回值
SeImpersonateClientEx 會傳回適當的 NTSTATUS 值,如下所示:
傳回碼 | 描述 |
---|---|
|
模擬嘗試成功。 |
|
ServerThread 參數中指定的線程沒有足夠的訪問許可權,無法模擬在 ClientContext 參數中指定其安全性用戶端內容的使用者。 |
|
SeImpersonateClientEx 配置模擬資訊結構的記憶體時發生集區配置失敗。 |
言論
SeImpersonateClientEx 用來讓線程模擬使用者。 ClientContext 中的用戶端安全性內容假設為最新狀態。
提高不受信任用戶線程的許可權狀態非常不安全(例如,採用使用者的線程並模擬 LocalSystem)。 如果未受信任的用戶線程已提高其許可權,則用戶可以在提升線程令牌之後擷取線程令牌,並顛覆整個系統的安全性。
如果需要較高的許可權狀態,工作應該分派至工作佇列,讓系統背景工作線程可以安全地處理工作。 如此一來,就不需要模擬。
若要結束使用者的模擬,請呼叫 SeStopImpersonatingClient 例程。
PsImpersonateClient 例程可用來讓伺服器線程模擬用戶端。
如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程式開發人員的 Windows 安全性模型,以及 Windows SDK 中這些主題的檔。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |