CSacl 类

此类是 SACL(系统访问控制列表)结构的包装器。

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

class CSacl : public CAcl

成员

公共构造函数

名称 描述
CSacl::CSacl 构造函数。
CSacl::~CSacl 析构函数。

公共方法

名称 描述
CSacl::AddAuditAce CSacl 对象添加审核访问控制项 (ACE)。
CSacl::GetAceCount 返回 CSacl 对象中访问控制项 (ACE) 的数量。
CSacl::RemoveAce CSacl 对象中删除特定的访问控制项 (ACE)。
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

CSacl 对象添加审核访问控制项 (ACE)。

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 对象中访问控制项 (ACE) 的数量。

UINT GetAceCount() const throw();

返回值

返回 CSacl 对象中包含的 ACE 数。

CSacl::operator =

赋值运算符。

CSacl& operator=(const ACL& rhs) throw(...);

参数

rhs
要分配给现有对象的 ACL(访问控制列表)。

返回值

返回对更新的 CSacl 对象的引用。 确保 ACL 参数是系统访问控制列表 (SACL),而不是任意访问控制列表 (DACL)。 在调试版本中,将发生断言,在发布版本中,ACL 参数将被忽略。

CSacl::RemoveAce

CSacl 对象中删除特定的访问控制项 (ACE)。

void RemoveAce(UINT nIndex) throw();

参数

nIndex
要删除的 ACE 条目的索引。

备注

此方法派生自 CAtlArray::RemoveAt

CSacl::RemoveAllAces

删除 CSacl 对象中包含的所有访问控制项 (ACE)。

void RemoveAllAces() throw();

备注

删除 CSacl 对象中的任何 ACE 结构(如果有)。

另请参阅

CAcl 类
ACL
ACEs
类概述
安全全局函数