SECURITY_OBJECT 结构 (aclui.h)

SECURITY_OBJECT结构包含安全对象信息。

语法

typedef struct _SECURITY_OBJECT {
  PWSTR   pwszName;
  PVOID   pData;
  DWORD   cbData;
  PVOID   pData2;
  DWORD   cbData2;
  DWORD   Id;
  BOOLEAN fWellKnown;
} SECURITY_OBJECT, *PSECURITY_OBJECT;

成员

pwszName

指向名称的指针。

pData

指向安全数据的指针。

cbData

pData 成员指向的数据的大小(以字节为单位)。 如果 pData 包含数据,例如,当数据是 IUnknown 接口指针、句柄或特定于资源管理器的数据(可直接存储在 pData 中而无需内存分配)时,该值可能为零。

pData2

指向其他安全数据的指针。

cbData2

pData2 成员指向的数据的大小(以字节为单位)。 如果 pData2 包含数据,例如,当数据是 IUnknown 接口指针、句柄或特定于资源管理器的数据(可直接存储在 pData2 中而无需内存分配)时,该值可能为零。

Id

安全对象类型的标识符。 如果 fWellKnown 成员为 FALSE,则 Id 成员除了帮助资源管理器将其与其他安全对象类区分开外,没有特殊意义。 如果 fWellKnown 成员为 TRUE,则 Id 成员为下列成员之一,整个结构遵循相应的表示形式。

含义
SECURITY_OBJECT_ID_OBJECT_SD (1)
资源的安全描述符。

如果 Id 设置为此值,则 pData 指向安全描述符, cbDatapData 中的字节数。

pData2NULL,cbData2 为 0。

SECURITY_OBJECT_ID_SHARE (2)
网络共享的安全描述符。

如果 ID 设置为此值,则 pData 指向表示共享安全上下文的 对象的 ISecurityInformation 接口。

如果安全描述符尚不可用,则 pData2 必须是一个可等待对象的句柄,当 GetSecondarySecurity 方法返回S_FALSE安全描述符准备就绪时发出信号。 应通过 CreateEvent 函数创建可等待对象。 在本例中, cbData2 为 0。

此标识符仅适用于文件系统对象。

SECURITY_OBJECT_ID_CENTRAL_POLICY (3)
中心访问策略的安全描述符。

如果 Id 设置为此值,则 pData 指向安全描述符,其中包含空 DACL、所有者、组和属性 访问控制条目 (ACE) ,这些项与资源的所有者、组和属性以及包含中心策略 ID 的SCOPE_SECURITY_INFORMATION_ACE匹配。 cbData 设置为 pData 中的字节数。

pData2NULL,cbData2 为 0。

安全描述符的构造是为了使计算有效权限能够正确确定访问何时受中心策略限制,并且无法确定中央访问规则的更详细程度。 当无法将应用于资源的中心访问策略解析为其元素性中心访问规则时,会使用此策略。

SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE (4)
中心访问规则的安全描述符。

如果 Id 设置为此值,则 pData 会指向安全描述符,其中包含与资源的所有者、组和属性匹配的所有者、组和属性,以及与中心访问规则的 DACL 匹配的 DACL (可 自由裁量访问控制列表) 。 cbData 设置为 pData 中的字节数。

此外, pData2 指向具有 DACL 的安全描述符,该安全描述符包含条件 ACE,如果中心访问规则中的资源条件的计算结果为 TRUE,则向 Everyone 授予0x1。 cbData2 设置为 pData2 中的字节数。

安全描述符的构造是为了使计算有效权限能够确定访问何时受到中央访问策略的最详细限制。 也就是说,通过指向中心策略规则来限制访问。

fWellKnown

如果安全对象表示 Id 成员中列出的已知安全对象之一,则为 TRUE

注解

id 成员 SECURITY_OBJECT 结构设置为SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE时, ComputeEffectivePermissionWithSecondarySecurity 方法必须先使用 的 pData2 成员,然后才使用 pData 成员评估访问权限。

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
标头 aclui.h

另请参阅

IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity

ISecurityInformation4::GetSecondarySecurity