共用方式為


CTokenPrivileges 類別

這個類別是 結構的 TOKEN_PRIVILEGES 包裝函式。

重要

這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。

語法

class CTokenPrivileges

成員

公用建構函式

名稱 描述
CTokenPrivileges::CTokenPrivileges 建構函式。
CTokenPrivileges::~CTokenPrivileges 解構函式。

公用方法

名稱 描述
CTokenPrivileges::Add 將一或多個許可權新增至 CTokenPrivileges 物件。
CTokenPrivileges::D elete CTokenPrivileges 物件中刪除許可權。
CTokenPrivileges::D eleteAll 從物件中刪除所有許可權 CTokenPrivileges
CTokenPrivileges::GetCount 傳回物件中 CTokenPrivileges 的許可權項目數目。
CTokenPrivileges::GetDisplayNames 擷取物件中包含的許可權顯示 CTokenPrivileges 名稱。
CTokenPrivileges::GetLength 傳回緩衝區大小,以位元組為單位來保存 TOKEN_PRIVILEGES 物件所 CTokenPrivileges 表示的結構。
CTokenPrivileges::GetLuidsAndAttributes CTokenPrivileges 物件擷取本機唯一標識碼 (LUID) 和屬性旗標。
CTokenPrivileges::GetNamesAndAttributes CTokenPrivileges 物件擷取許可權名稱和屬性旗標。
CTokenPrivileges::GetPTOKEN_PRIVILEGES 傳回 結構的 TOKEN_PRIVILEGES 指標。
CTokenPrivileges::LookupPrivilege 擷取與指定許可權名稱相關聯的屬性。

公用運算子

名稱 描述
CTokenPrivileges::operator const TOKEN_PRIVILEGES * 將值轉換成 結構的 TOKEN_PRIVILEGES 指標。
CTokenPrivileges::operator = 指派運算子。

備註

存取令牌是物件,描述進程或線程的安全性內容,並配置給登入 Windows 系統的每個使用者。

存取令牌可用來描述授與每個用戶的各種安全性許可權。 許可權是由稱為本機唯一標識碼 ( LUID) 和描述元字串的 64 位數位所組成。

類別CTokenPrivileges是TOKEN_PRIVILEGES結構的包裝函式,包含 0 或更多許可權。 您可以使用提供的類別方法來新增、刪除或查詢許可權。

如需 Windows 中存取控制模型的簡介,請參閱 Windows SDK 中的 存取控制

需求

標頭: atlsecurity.h

CTokenPrivileges::Add

將一或多個許可權新增至 CTokenPrivileges 存取令牌物件。

bool Add(LPCTSTR pszPrivilege, bool bEnable) throw(...);
void Add(const TOKEN_PRIVILEGES& rPrivileges) throw(...);

參數

pszPrivilege
以 Null 結尾的字串指標,指定 WINNT 中所定義之許可權的名稱。H 頭檔。

bEnable
如果為 true,則會啟用許可權。 如果為 false,則會停用許可權。

rPrivileges
TOKEN_PRIVILEGES 結構的參考。 許可權和屬性會從這個結構複製,並新增至 CTokenPrivileges 物件。

傳回值

如果成功新增許可權,這個方法的第一種形式會傳回 true,否則傳回 false。

CTokenPrivileges::CTokenPrivileges

建構函式。

CTokenPrivileges() throw();
CTokenPrivileges(const CTokenPrivileges& rhs) throw(... );
CTokenPrivileges(const TOKEN_PRIVILEGES& rPrivileges) throw(...);

參數

rhs
CTokenPrivileges 指派給新物件的物件。

rPrivileges
指派給新CTokenPrivileges物件的TOKEN_PRIVILEGES結構。

備註

CTokenPrivileges您可以使用 結構或先前定義的 CTokenPrivileges 對象,選擇性地建立 TOKEN_PRIVILEGES 物件。

CTokenPrivileges::~CTokenPrivileges

解構函式。

virtual ~CTokenPrivileges() throw();

備註

解構函式會釋放所有已配置的資源。

CTokenPrivileges::D elete

CTokenPrivileges 存取令牌物件中刪除許可權。

bool Delete(LPCTSTR pszPrivilege) throw();

參數

pszPrivilege
以 Null 結尾的字串指標,指定 WINNT 中所定義之許可權的名稱。H 頭檔。 例如,此參數可以指定常數SE_SECURITY_NAME或其對應的字串串 “SeSecurityPrivilege”。

傳回值

如果成功刪除許可權,則傳回 true,否則傳回 false。

備註

這個方法可作為建立受限制令牌的工具。

CTokenPrivileges::D eleteAll

CTokenPrivileges 存取令牌物件中刪除所有許可權。

void DeleteAll() throw();

備註

刪除存取令牌物件中包含的 CTokenPrivileges 所有許可權。

CTokenPrivileges::GetDisplayNames

擷取存取令牌物件中包含的許可權顯示 CTokenPrivileges 名稱。

void GetDisplayNames(CNames* pDisplayNames) const throw(...);

參數

pDisplayNames
CString 物件陣列的指標。 CNames 定義為 typedef: CTokenPrivileges::CAtlArray<CString>

備註

參數 pDisplayNames 是 對象的陣列指標,該陣列 CString 將接收對應至物件中所含許可權的 CTokenPrivileges 顯示名稱。 這個方法只會擷取 WINNT.H 之 [定義許可權] 區段中所指定之許可權的顯示名稱。

這個方法會擷取可顯示的名稱:例如,如果屬性名稱是SE_REMOTE_SHUTDOWN_NAME,則可顯示的名稱為「強制從遠端系統關閉」。若要取得系統名稱,請使用 CTokenPrivileges::GetNamesAndAttributes

CTokenPrivileges::GetCount

傳回物件中 CTokenPrivileges 的許可權項目數目。

UINT GetCount() const throw();

傳回值

傳回物件中包含的 CTokenPrivileges 許可權數目。

CTokenPrivileges::GetLength

傳回 物件的長度 CTokenPrivileges

UINT GetLength() const throw();

傳回值

傳回保存 物件所CTokenPrivileges表示之結構所需的TOKEN_PRIVILEGES位元元組數目,包括它所包含的所有許可權專案。

CTokenPrivileges::GetLuidsAndAttributes

CTokenPrivileges 物件擷取本機唯一標識碼 (LUID) 和屬性旗標。

void GetLuidsAndAttributes(
    CLUIDArray* pPrivileges,
    CAttributes* pAttributes = NULL) const throw(...);

參數

pPrivileges
LUID 對象的陣列指標。 CLUIDArray 是定義為 CAtlArray<LUID> CLUIDArray的 typedef。

pAttributes
DWORD 對象的陣列指標。 如果省略此參數或 NULL,則不會擷取屬性。 CAttributes 是定義為 CAtlArray <DWORD> CAttributes的 typedef。

備註

這個方法會列舉存取令牌物件中包含的 CTokenPrivileges 所有許可權,並將個別 LUID 和 (選擇性地) 屬性旗標放入數位物件中。

CTokenPrivileges::GetNamesAndAttributes

CTokenPrivileges 物件擷取名稱和屬性旗標。

void GetNamesAndAttributes(
    CNames* pNames,
    CAttributes* pAttributes = NULL) const throw(...);

參數

pNames
對象的陣列 CString 指標。 CNames 是定義為 CAtlArray <CString> CNames的 typedef。

pAttributes
DWORD 對象的陣列指標。 如果省略此參數或 NULL,則不會擷取屬性。 CAttributes 是定義為 CAtlArray <DWORD> CAttributes的 typedef。

備註

這個方法會列舉 物件中包含的 CTokenPrivileges 所有許可權,並將名稱和 (選擇性地) 屬性旗標放入數位物件中。

這個方法會擷取屬性名稱,而不是可顯示的名稱:例如,如果屬性名稱是SE_REMOTE_SHUTDOWN_NAME,則系統名稱為 “SeRemoteShutdownPrivilege”。若要取得可顯示的名稱,請使用 CTokenPrivileges::GetDisplayNames 方法

CTokenPrivileges::GetPTOKEN_PRIVILEGES

傳回 結構的 TOKEN_PRIVILEGES 指標。

const TOKEN_PRIVILEGES* GetPTOKEN_PRIVILEGES() const throw(...);

傳回值

傳回TOKEN_PRIVILEGES結構的指標

CTokenPrivileges::LookupPrivilege

擷取與指定許可權名稱相關聯的屬性。

bool LookupPrivilege(
    LPCTSTR pszPrivilege,
    DWORD* pdwAttributes = NULL) const throw(...);

參數

pszPrivilege
以 Null 結尾的字串指標,指定 WINNT 中所定義之許可權的名稱。H 頭檔。 例如,此參數可以指定常數SE_SECURITY_NAME或其對應的字串串 “SeSecurityPrivilege”。

pdwAttributes
接收屬性之變數的指標。

傳回值

如果成功擷取屬性,則傳回 true,否則傳回 false。

CTokenPrivileges::operator =

指派運算子。

CTokenPrivileges& operator= (const TOKEN_PRIVILEGES& rPrivileges) throw(...);
CTokenPrivileges& operator= (const CTokenPrivileges& rhs) throw(...);

參數

rPrivileges
指派給 CTokenPrivileges 物件的TOKEN_PRIVILEGES結構。

rhs
CTokenPrivileges 指派給對象的物件。

傳回值

傳回更新 CTokenPrivileges 的物件。

CTokenPrivileges::operator const TOKEN_PRIVILEGES *

將值轉換成 結構的 TOKEN_PRIVILEGES 指標。

operator const TOKEN_PRIVILEGES *() const throw(...);

備註

將值轉換成TOKEN_PRIVILEGES結構的指標

另請參閱

安全性範例
TOKEN_PRIVILEGES
LUID
LUID_AND_ATTRIBUTES
類別概觀
安全性全域函式