用戶端模擬 (授權)
模擬 是線程使用與擁有線程的進程不同的安全性資訊執行的能力。 一般而言,伺服器應用程式中的線程會模擬用戶端。 這可讓伺服器線程代表該用戶端存取伺服器上的物件,或驗證用戶端本身物件的存取權。
Microsoft Windows API 提供下列函式來開始模擬:
- DDE 伺服器應用程式可以呼叫 DdeImpersonateClient 函式來模擬用戶端。
- 命名管道伺服器可以呼叫 ImpersonateNamedPipeClient 函式。
- 您可以呼叫 ImpersonateLoggedOnUser 函式來模擬登入使用者 存取令牌的安全性內容,。
- ImpersonateSelf 函式可讓線程產生自己的存取令牌複本。 當應用程式需要變更單一線程的安全性內容時,這會很有用。 例如,有時候行程只有一個線程需要啟用 權限。
- 您可以呼叫 SetThreadToken 函式,讓目標線程在指定的 模擬令牌的安全性內容中執行。
- Microsoft遠端過程調用 (RPC) 伺服器應用程式可以呼叫 RpcImpersonateClient 函式來模擬用戶端。
- 安全性套件 或應用程式伺服器可以呼叫 ImpersonateSecurityContext 函式來模擬用戶端。
針對大部分的模擬,模擬線程可以藉由呼叫 RevertToSelf 函式,還原成自己的安全性內容。 例外狀況是 RPC 模擬,RPC 伺服器應用程式會呼叫 RpcRevertToSelf 或 RpcRevertToSelfEx,以還原為自己的安全性內容。
注意:如果您是從 Win32 服務模擬使用者,而且您呼叫依賴使用者環境變數的 API,您可能需要在進行模擬之前呼叫 RegDisablePredefinedCache。