访问控制编辑器
访问控制编辑器是一组属性表和属性页,使用户能够查看和修改对象 的安全描述符的组件。 编辑器由两个main部分组成:
- 基本安全属性页,提供一个简单的界面,用于编辑对象的任意访问控制列表中的 ACE (ACE) (DACL) 。 此页面可以 包含显示高级 安全属性表的可选“高级”按钮。
- 具有属性页 的高级安全属性表 ,使用户能够编辑对象的 系统访问控制列表 (SACL) 、更改对象的所有者或执行对象的 DACL 的高级编辑。
CreateSecurityPage 函数创建基本安全属性页。 然后,可以使用 PropertySheet 函数或 PSM_ADDPAGE 消息将此页面添加到属性表。
或者,可以使用 EditSecurity 函数显示包含基本安全属性页的属性表。
对于 CreateSecurityPage 和 EditSecurity,调用方必须将指针传递到 ISecurityInformation 接口的实现。 访问控制编辑器调用此接口的方法以检索有关所编辑对象的访问控制信息,并将用户的输入传递回应用程序。 ISecurityInformation 方法具有以下用途:
初始化属性页。
GetObjectInformation 方法的实现将SI_OBJECT_INFO结构传递给编辑器。 此结构指定希望编辑器显示的属性页,以及确定可供用户使用的编辑选项的其他信息。
提供有关正在编辑的对象的安全信息。
GetSecurity 实现将对象的初始安全描述符传递给编辑器。 GetAccessRights 和 MapGeneric 方法提供有关对象访问权限的信息。 GetInheritTypes 方法提供有关子对象如何继承对象的 ACE 的信息。
将用户的输入传递回应用程序。
当用户单击“ 确定” 或“ 应用”时,编辑器将调用 SetSecurity 方法以传递回包含用户更改的安全描述符。