EXPLICIT_ACCESS
EXPLICIT_ACCESS结构为一个指定的受托人定义访问控制信息. 访问控制函数,例如SetEntriesInAcl和GetExplicitEntriesFromAcl, 使用这种结构来描述在一个访问控制列表(ACL)的访问控制条目(ACE)的信息。
typedef struct _EXPLICIT_ACCESS {
DWORD grfAccessPermissions;
ACCESS_MODE grfAccessMode;
DWORD grfInheritance;
TRUSTEE Trustee;} EXPLICIT_ACCESS,
*PEXPLICIT_ACCESS;成员
grfAccessPermissions
一组使用ACCESS_MASK格式指定ACE允许,否认或审查受托人权限的位标志。使用EXPLICIT_ACCESS结构的函数将不会转换、解释或验证这个掩码的位。
grfAccessMode
一个来自ACCESS_MODE的枚举变量。
对于一个自主访问控制列表(DACL)而言,这个标志用于指定ACL是否允许或者拒绝指定访问权限。
对于一个系统访问控制列表(SACL)而言,这个标志用于指定ACL是否为成功(或失败,或成功和失败)的尝试使用指定的访问权限生成审计信息。
当修改一个现有的ACL,你可以通过指定REVOKE_ACCESS标志为特定的受托人删除任何现有的ACE。
grfInheritance
一组用于决定其他容器或者对象是否能从ACL连接的主对象继承ACE的位标志。这个成员的值对应ACE_HEADER结构的AceFlags成员的继承部分(低字节)。这个变量可以标志为NO_INHERITANCE,用以指定ACE不能继承,也可以是以下值的组合。
Value
Meaning
CONTAINER_INHERIT_ACE
主对象包含的其他容器可以继承ACE
INHERIT_ONLY_ACE
ACE不适用于ACL连接的主对象,但主对象包含的对象可以继承ACE。
NO_PROPAGATE_INHERIT_ACE
OBJECT_INHERIT_ACE和CONTAINER_INHERIT_ACE 标志不会传播到继承的ACE。
OBJECT_INHERIT_ACE
主对象包含的非容器对象可以继承ACE
SUB_CONTAINERS_AND_OBJECTS_INHERIT
主对象包含的容器和非容器对象都能继承ACE。此标志对应的是CONTAINER_INHERIT_ACE和OBJECT_INHERIT_ACE的组合。
SUB_CONTAINERS_ONLY_INHERIT
主对象包含的其他容器可以继承ACE。此标志对应于CONTAINER_INHERIT_ACE
SUB_OBJECTS_ONLY_INHERIT
主对象包含的非容器对象可以继承ACE。此标志对应于OBJECT_INHERIT_ACE
Trustee
一个用以指定ACE适用的用户,组或程序(例如一个Windows服务)的TRUSTEE结构。
Requirements
Client
Requires Windows XP, Windows 2000 Professional, or Windows NT Workstation 4.0.
Server
Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.
Header
Declared in AccCtrl.h.
Unicode
Implemented as EXPLICIT_ACCESS_W (Unicode) and EXPLICIT_ACCESS_A (ANSI).