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