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
類別概觀
安全性全域函式