ImpersonateAnonymousToken 函式 (securitybaseapi.h)

ImpersonateAnonymousToken 函式可讓指定的線程模擬系統的匿名登錄令牌。 若要確保令牌符合操作系統的匿名存取概念,在嘗試網路存取以在遠端伺服器上產生匿名令牌之前,應該先呼叫此函式。

語法

BOOL ImpersonateAnonymousToken(
  [in] HANDLE ThreadHandle
);

參數

[in] ThreadHandle

用來模擬系統匿名登錄令牌之線程的句柄。 線程句柄必須具有THREAD_IMPERSONATE存取權,線程才能模擬系統的匿名登錄令牌。

若要授與這類存取權,必須透過呼叫具有所需訪問許可權的 OpenThread 來開啟線程,才能THREAD_IMPERSONATE。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

ACCESS_DENIED的錯誤可能表示令牌適用於受限制的進程。 使用 OpenProcessTokenIsTokenRestricted 檢查進程是否受到限制。 如果線程句柄缺少對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

另請參閱