CPrivateObjectSecurityDesc 类
此类表示专用对象安全描述符对象。
语法
class CPrivateObjectSecurityDesc : public CSecurityDesc
成员
公共构造函数
名称 | 描述 |
---|---|
CPrivateObjectSecurityDesc::CPrivateObjectSecurityDesc | 构造函数。 |
CPrivateObjectSecurityDesc::~CPrivateObjectSecurityDesc | 析构函数。 |
公共方法
名称 | 描述 |
---|---|
CPrivateObjectSecurityDesc::ConvertToAutoInherit | 调用此方法可将安全描述符及其访问控制列表 (ACL) 转换为支持自动传播可继承访问控制条目 (ACE) 的格式。 |
CPrivateObjectSecurityDesc::Create | 调用此方法可分配和初始化通过调用资源管理器来创建的专用对象的自相对安全描述符。 |
CPrivateObjectSecurityDesc::Get | 调用此方法可从专用对象的安全描述符中检索信息。 |
CPrivateObjectSecurityDesc::Set | 调用此方法可修改专用对象的安全描述符。 |
运算符
运算符 | 说明 |
---|---|
operator = | 赋值运算符。 |
备注
此类派生自 CSecurityDesc,提供用于创建和管理专用对象的安全描述符的方法。
有关 Windows 中访问控制模型的简介,请参阅 Windows SDK 中的访问控制。
继承层次结构
CPrivateObjectSecurityDesc
要求
标头: atlsecurity.h
CPrivateObjectSecurityDesc::ConvertToAutoInherit
调用此方法可将安全描述符及其访问控制列表 (ACL) 转换为支持自动传播可继承访问控制条目 (ACE) 的格式。
bool ConvertToAutoInherit(
const CSecurityDesc* pParent,
GUID* ObjectType,
bool bIsDirectoryObject,
PGENERIC_MAPPING GenericMapping) throw();
参数
pParent
指向 CSecurityDesc 对象的指针,该对象引用此对象的父容器。 如果没有父容器,则此参数为 NULL。
ObjectType
指向 GUID
结构的指针,该结构标识与当前对象关联的对象的类型。 如果对象没有 GUID,请将 ObjectType 设置为 NULL。
bIsDirectoryObject
指定新对象是否可以包含其他对象。 值为 true 指示新对象是容器。 值为 false 指示新对象不是容器。
GenericMapping
指向 GENERIC_MAPPING 结构的指针,该结构指定从每个泛型权限到对象的特定权限的映射。
返回值
如果成功,则返回 true;如果失败,则返回 false。
注解
此方法尝试确定当前安全描述符的自定义访问控制列表 (DACL) 和系统访问控制列表 (SACL) 中的 ACE 是否继承自父安全描述符。 它调用 ConvertToAutoInheritPrivateObjectSecurity 函数。
CPrivateObjectSecurityDesc::CPrivateObjectSecurityDesc
构造函数。
CPrivateObjectSecurityDesc() throw();
注解
初始化 CPrivateObjectSecurityDesc
对象。
CPrivateObjectSecurityDesc::~CPrivateObjectSecurityDesc
析构函数。
~CPrivateObjectSecurityDesc() throw();
备注
析构函数释放所有已分配的资源,并删除专用对象的安全描述符。
CPrivateObjectSecurityDesc::Create
调用此方法可分配和初始化通过调用资源管理器来创建的专用对象的自相对安全描述符。
bool Create(
const CSecurityDesc* pParent,
const CSecurityDesc* pCreator,
bool bIsDirectoryObject,
const CAccessToken& Token,
PGENERIC_MAPPING GenericMapping) throw();
bool Create(
const CSecurityDesc* pParent,
const CSecurityDesc* pCreator,
GUID* ObjectType,
bool bIsContainerObject,
ULONG AutoInheritFlags,
const CAccessToken& Token,
PGENERIC_MAPPING GenericMapping) throw();
参数
pParent
指向 CSecurityDesc 对象的指针,该对象引用在其中创建新对象的父目录。 如果没有父目录,则将其设置为 NULL。
pCreator
指向对象创建者提供的安全描述符的指针。 如果对象的创建者未显式传递新对象的安全信息,请将此参数设置为 NULL。
bIsDirectoryObject
指定新对象是否可以包含其他对象。 值为 true 指示新对象是容器。 值为 false 指示新对象不是容器。
令牌
对 CAccessToken 对象的引用,这是为创建对象时所代表的客户端进程进行的。
GenericMapping
指向 GENERIC_MAPPING 结构的指针,该结构指定从每个泛型权限到对象的特定权限的映射。
ObjectType
指向 GUID
结构的指针,该结构标识与当前对象关联的对象的类型。 如果对象没有 GUID,请将 ObjectType 设置为 NULL。
bIsContainerObject
指定新对象是否可以包含其他对象。 值为 true 指示新对象是容器。 值为 false 指示新对象不是容器。
AutoInheritFlags
一组位标志,用于控制如何从 pParent 继承访问控制条目 (ACE)。 有关更多详细信息,请参阅 CreatePrivateObjectSecurityEx。
返回值
如果成功,则返回 true;如果失败,则返回 false。
注解
此方法调用 CreatePrivateObjectSercurity 或 CreatePrivateObjectSecurityEx。
第二种方法允许指定新对象的对象类型 GUID 或控制 ACE 的继承方式。
注意
自相对安全描述符是一个安全描述符,用于将所有安全信息存储在连续内存块中。
CPrivateObjectSecurityDesc::Get
调用此方法可从专用对象的安全描述符中检索信息。
bool Get(
SECURITY_INFORMATION si,
CSecurityDesc* pResult) const throw();
参数
si
一组位标志,指示要检索的安全描述符的部件。 此值可以是 SECURITY_INFORMATION 位标志的组合。
pResult
指向 CSecurityDesc 对象的指针,该对象从指定安全描述符接收所请求信息的副本。
返回值
如果成功,则返回 true;如果失败,则返回 false。
备注
安全描述符是结构和关联的数据,其中包含安全对象的安全信息。
CPrivateObjectSecurityDesc::operator =
赋值运算符。
CPrivateObjectSecurityDesc& operator= (const CPrivateObjectSecurityDesc& rhs) throw(...);
参数
rhs
要分配给当前对象的 CPrivateObjectSecurityDesc
对象。
返回值
返回更新的 CPrivateObjectSecurityDesc
对象。
CPrivateObjectSecurityDesc::Set
调用此方法可修改专用对象的安全描述符。
bool Set(
SECURITY_INFORMATION si,
const CSecurityDesc& Modification,
PGENERIC_MAPPING GenericMapping,
const CAccessToken& Token) throw();
bool Set(
SECURITY_INFORMATION si,
const CSecurityDesc& Modification,
ULONG AutoInheritFlags,
PGENERIC_MAPPING GenericMapping,
const CAccessToken& Token) throw();
参数
si
一组位标志,指示要设置的安全描述符的部件。 此值可以是 SECURITY_INFORMATION 位标志的组合。
修改
指向 CSecurityDesc 对象的指针。 si 参数指示的此安全描述符的部件应用于对象的安全描述符。
GenericMapping
指向 GENERIC_MAPPING 结构的指针,该结构指定从每个泛型权限到对象的特定权限的映射。
令牌
对 CAccessToken 对象的引用,这是为创建对象时所代表的客户端进程进行的。
AutoInheritFlags
一组位标志,用于控制如何从 pParent 继承访问控制条目 (ACE)。 有关更多详细信息,请参阅 CreatePrivateObjectSecurityEx。
返回值
如果成功,则返回 true;如果失败,则返回 false。
注解
第二种方法允许指定对象的对象类型 GUID 或控制 ACE 的继承方式。