共用方式為


SeImpersonateClientEx 函式 (ntifs.h)

SeImpersonateClientEx 例程會導致線程模擬使用者。

語法

NTSTATUS SeImpersonateClientEx(
  [in]           PSECURITY_CLIENT_CONTEXT ClientContext,
  [in, optional] PETHREAD                 ServerThread
);

參數

[in] ClientContext

使用者安全性客戶端內容的指標。

[in, optional] ServerThread

模擬使用者之線程的指標。 如果未指定,則會使用呼叫線程。

傳回值

SeImpersonateClientEx 會傳回適當的 NTSTATUS 值,如下所示:

傳回碼 描述
STATUS_SUCCESS
模擬嘗試成功。
STATUS_ACCESS_DENIED
ServerThread 參數中指定的線程沒有足夠的訪問許可權,無法模擬在 ClientContext 參數中指定其安全性用戶端內容的使用者。
STATUS_NO_MEMORY
SeImpersonateClientEx 配置模擬資訊結構的記憶體時發生集區配置失敗。

言論

SeImpersonateClientEx 用來讓線程模擬使用者。 ClientContext 中的用戶端安全性內容假設為最新狀態。

提高不受信任用戶線程的許可權狀態非常不安全(例如,採用使用者的線程並模擬 LocalSystem)。 如果未受信任的用戶線程已提高其許可權,則用戶可以在提升線程令牌之後擷取線程令牌,並顛覆整個系統的安全性。

如果需要較高的許可權狀態,工作應該分派至工作佇列,讓系統背景工作線程可以安全地處理工作。 如此一來,就不需要模擬。

若要結束使用者的模擬,請呼叫 SeStopImpersonatingClient 例程。

PsImpersonateClient 例程可用來讓伺服器線程模擬用戶端。

如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程式開發人員的 Windows 安全性模型,以及 Windows SDK 中這些主題的檔。

要求

要求 價值
最低支援的用戶端 Windows 2000
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另請參閱

PsImpersonateClient

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SestopImpersonatingClient