ImpersonateAnonymousToken 函式 (securitybaseapi.h)
ImpersonateAnonymousToken 函式可讓指定的線程模擬系統的匿名登錄令牌。 若要確保令牌符合操作系統的匿名存取概念,在嘗試網路存取以在遠端伺服器上產生匿名令牌之前,應該先呼叫此函式。
語法
BOOL ImpersonateAnonymousToken(
[in] HANDLE ThreadHandle
);
參數
[in] ThreadHandle
用來模擬系統匿名登錄令牌之線程的句柄。 線程句柄必須具有THREAD_IMPERSONATE存取權,線程才能模擬系統的匿名登錄令牌。
若要授與這類存取權,必須透過呼叫具有所需訪問許可權的 OpenThread 來開啟線程,才能THREAD_IMPERSONATE。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
ACCESS_DENIED的錯誤可能表示令牌適用於受限制的進程。 使用 OpenProcessToken 和 IsTokenRestricted 檢查進程是否受到限制。 如果線程句柄缺少對THREAD_IMPERSONATE的正確存取權,也會傳回ACCESS_DENIED。
備註
除非系統預設值已透過將 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\EveryoneIncludesAnonymous 登錄值設定為 DWORD=1 來覆寫系統預設值,否則匿名令牌不包含「所有人」群組 SID。
若要取消模擬,請呼叫 RevertToSelf。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | securitybaseapi.h (包括 Windows.h) |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |