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 的示例,请参阅 AtlGetSacl 和 AtlSetSacl。
使用提供的类方法添加、删除、创建和从 SACL
对象删除 ACE。 另请参阅 AtlGetSacl 和 AtlSetSacl。
有关 Windows 中访问控制模型的简介,请参阅 Windows SDK 中的访问控制。
继承层次结构
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
结构(如果有)。