CSacl 類別
這個類別是 SACL (系統存取控制清單) 結構的包裝函式。
重要
這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。
語法
class CSacl : public CAcl
成員
公用建構函式
名稱 | 描述 |
---|---|
CSacl::CSacl | 建構函式。 |
CSacl::~CSacl | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CSacl::AddAuditAce | 將稽核存取控制專案 (ACE) 新增至 CSacl 物件。 |
CSacl::GetAceCount | 傳回物件中的 CSacl 訪問控制項目數目。 |
CSacl::RemoveAce | 從物件中移除特定的 ACE (存取控制專案)。CSacl |
CSacl::RemoveAllAces | 拿掉物件中包含的 CSacl 所有 ACE。 |
公用運算子
名稱 | 描述 |
---|---|
CSacl::operator = | 指派運算子。 |
備註
SACL 包含存取控制專案 (ACE),可指定在域控制器的安全性事件記錄檔中產生稽核記錄的存取嘗試類型。 請注意,SACL 只會在發生存取嘗試的域控制器上產生記錄專案,而不是在每個包含物件複本的域控制器上。
若要在物件的安全性描述元中設定或擷取 SACL,必須在要求線程的存取令牌中啟用SE_SECURITY_NAME許可權。 系統管理員群組預設會授與此許可權,而且可以授與其他使用者或群組。 授與許可權並非全部必要許可權:執行許可權所定義的作業之前,必須在安全性存取令牌中啟用許可權,才能生效。 此模型只允許針對特定系統作業啟用許可權,然後在不再需要時加以停用。 如需啟用SE_SECURITY_NAME的範例,請參閱 AtlGetSacl 和 AtlSetSacl 。
使用提供的類別方法,從 SACL
物件新增、移除、建立和刪除 ACE。 另 請參閱 AtlGetSacl 和 AtlSetSacl。
如需 Windows 中存取控制模型的簡介,請參閱 Windows SDK 中的 存取控制。
繼承階層架構
CSacl
需求
標頭: atlsecurity.h
CSacl::AddAuditAce
將稽核存取控制專案 (ACE) 新增至 CSacl
物件。
bool AddAuditAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
bool bSuccess,
bool bFailure,
BYTE AceFlags = 0) throw(...);
bool AddAuditAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
bool bSuccess,
bool bFailure,
BYTE AceFlags,
const GUID* pObjectType,
const GUID* pInheritedObjectType) throw(...);
參數
rSid
CSid 物件。
AccessMask
指定要針對指定 CSid
物件稽核的訪問許可權遮罩。
bSuccess
指定是否要稽核允許的存取嘗試。 將此旗標設定為 true 以啟用稽核;否則,請將它設定為 false。
bFailure
指定是否要稽核拒絕的存取嘗試。 將此旗標設定為 true 以啟用稽核;否則,請將它設定為 false。
AceFlags
一組控制 ACE 繼承的位旗標。
pObjectType
物件類型。
pInheritedObjectType
繼承的物件類型。
傳回值
如果 ACE 新增至 CSacl
物件,則傳回 TRUE,失敗時為 FALSE。
備註
CSacl
物件包含訪問控制專案 (ACE),可指定在安全性事件記錄檔中產生稽核記錄的存取嘗試類型。 這個方法會將這類 ACE 新增至 CSacl
物件。
如需可在 AceFlags 參數中設定的各種旗標描述,請參閱ACE_HEADER。
CSacl::CSacl
建構函式。
CSacl() throw();
CSacl(const ACL& rhs) throw(...);
參數
rhs
現有的 ACL
(存取控制清單) 結構。
備註
CSacl
您可以使用現有的 ACL
結構選擇性地建立 物件。 請確定此參數是系統訪問控制清單 (SACL),而不是任意訪問控制清單 (DACL)。 在偵錯組建中,如果提供DACL,就會發生判斷提示。 在版本中,會忽略 DACL 的任何專案。
CSacl::~CSacl
解構函式。
~CSacl() throw();
備註
解構函式會釋放 物件取得的任何資源,包括所有訪問控制專案(ACE)。
CSacl::GetAceCount
傳回物件中的 CSacl
訪問控制項目數目。
UINT GetAceCount() const throw();
傳回值
傳回物件中包含的 CSacl
ACE 數目。
CSacl::operator =
指派運算子。
CSacl& operator=(const ACL& rhs) throw(...);
參數
rhs
要 ACL
指定給現有物件的 (存取控制清單) 。
傳回值
傳回已更新 CSacl
對象的參考。 請確定 ACL
參數實際上是系統訪問控制清單(SACL),而不是任意訪問控制清單(DACL)。 在偵錯組建中,將會發生判斷提示,而且在發行組建 ACL
中,將會忽略 參數。
CSacl::RemoveAce
從物件中移除特定的 ACE (存取控制專案)。CSacl
void RemoveAce(UINT nIndex) throw();
參數
nIndex
要移除的 ACE 專案索引。
備註
這個方法衍生自 CAtlArray::RemoveAt。
CSacl::RemoveAllAces
拿掉物件中包含的 CSacl
所有存取控制專案 (ACE)。
void RemoveAllAces() throw();
備註
ACE
拿掉物件中的每個CSacl
結構(如果有的話)。