共用方式為


SeImpersonateClientEx 函式 (ntifs.h)

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

語法

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

參數

[in] ClientContext

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

[in, optional] ServerThread

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

傳回值

SeImpersonateClientEx 會傳回適當的 NTSTATUS 值,例如:

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

備註

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

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

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

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

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

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

規格需求

需求
最低支援的用戶端 Windows 2000
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL

另請參閱

PsImpersonateClient

SeCreateClientSecurity

SeCreateClientSecurityFromSubjectContext

SeStopImpersonatingClient