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