共用方式為


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的範例,請參閱 AtlGetSaclAtlSetSacl

使用提供的類別方法,從 SACL 物件新增、移除、建立和刪除 ACE。 另 請參閱 AtlGetSaclAtlSetSacl

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

繼承階層架構

CAcl

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結構(如果有的話)。

另請參閱

CAcl 類別
ACL
ACE
類別概觀
安全性全域函式