DuplicateTokenEx

DuplicateTokenEx函式創建一個新的訪問令牌來複製一個已經存在的標記。 這個函式可以創建一個主令牌或模擬令牌 ,最低客戶端是Windows 2000專業版。

定義

該函式

語法

BOOL WINAPI DuplicateTokenEx(

__in HANDLE hExistingToken,

__in DWORD dwDesiredAccess,

__in_opt LPSECURITY_ATTRIBUTES lpTokenAttributes,

__in SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,

__in TOKEN_TYPE TokenType,

__out PHANDLE phNewToken );

參數

hExistingToken

一個通過TOKEN_DUPLICATE標誌打開的訪問令牌的句柄。

dwDesiredAccess

指定為新的令牌請求的訪問權。 該函式通過使用自由訪問控制列表 (DACL)了來比較現有令牌的請求的訪問權利,以確定哪些權利可以被授予或拒絕。 為了與現有的令牌的訪問權利相同,可以指定創建的新的令牌的訪問許可權為零。 為了使得對所有調用者的訪問權有效,應該指定MAXIMUM_ALLOWED。

要查看一個訪問令牌的訪問許可權的列表,請查看 Access Rights for Access-Token Objects.

lpTokenAttributes [可選]

一個指針指向SECURITY_ATTRIBUTES結構,指定一個安全描述符標記為新的令牌,並確定子進程是否可以繼承該標記。 如果lpTokenAttributes為NULL,令牌獲得一個默認的安全描述符並且句柄不能被繼承。 如果安全描述符中包含一個系統訪問控制列表 (SACL),即使未在dwDesiredAccess中指定,令牌也可以獲得ACCESS_SYSTEM_SECURITY訪問權。

如果要設定新的令牌安全描述符的所有者,調用者的進程令牌必須含有SE_RESTORE_NAME許可權集。

ImpersonationLevel

指定為SECURITY_IMPERSONATION_LEVEL結構中所枚舉的值,用來表示新的令牌的模擬級別。

TokenType

指定下列從TOKEN_TYPE枚舉的值的其中一個。

取值 意義
TokenPrimary 新的令牌是一個主令牌,你可以使用 CreateProcessAsUser函式。
TokenImpersonation 新的令牌是一個模擬令牌。

.

phNewToken [輸出]

一個指針指向一個接收新的令牌的可變的句柄。

當您使用完的新的令牌,請調用CloseHandle的功能關閉令牌的句柄。

返回值

如果函式成功,函式返回一個非零值。

如果函式失敗,返回零。

為了獲得更多的錯誤信息,請調用 GetLastError函式

備註

DuplicateTokenEx函式允許您創建一個主令牌,使得你可以使用 CreateProcessAsUser函式。 這使得伺服器應用程式可以模擬客戶端創建一個具有 安全上下文的客戶端的進程。

請注意, DuplicateToken功能只能創建模擬令牌,這對於 CreateProcessAsUser是無效的

要求

最低支持的客戶端 Windows 2000專業版
最低支持的伺服器 Windows 2000伺服器
頭檔案 WINBASE.H中(包括Windows.h中)
庫檔案 Advapi32.lib
DLL Advapi32.dll

相關詞條

相關搜尋

熱門詞條

聯絡我們