Editor de Access Control
El editor de control de acceso es un conjunto de hojas de propiedades y páginas de propiedades que permiten al usuario ver y modificar los componentes del descriptor de seguridad de un objeto. El editor consta de dos partes principales:
- Página de propiedades de seguridad básica que proporciona una interfaz sencilla para editar las entradas de control de acceso (ACE) en la lista de control de acceso discrecional (DACL) de un objeto. Esta página puede incluir un botón avanzado opcional que muestra la hoja de propiedades de seguridad avanzada.
- Una hoja de propiedades de seguridad avanzada con páginas de propiedades que permiten al usuario editar la lista de control de acceso del sistema (SACL) del objeto, cambiar el propietario del objeto o realizar una edición avanzada de la DACL del objeto.
La función CreateSecurityPage crea la página de propiedades de seguridad básica. A continuación, puede usar la función PropertySheet o el mensaje PSM_ADDPAGE para agregar esta página a una hoja de propiedades.
Como alternativa, puede usar la función EditSecurity para mostrar una hoja de propiedades que contenga la página de propiedades de seguridad básica.
Para CreateSecurityPage y EditSecurity, el autor de la llamada debe pasar un puntero a una implementación de la interfaz ISecurityInformation . El editor de control de acceso llama a los métodos de esta interfaz para recuperar información de control de acceso sobre el objeto que se está editando y para volver a pasar la entrada del usuario a la aplicación. Los métodos ISecurityInformation tienen los siguientes propósitos:
Para inicializar las páginas de propiedades.
La implementación del método GetObjectInformation pasa una estructura de SI_OBJECT_INFO al editor. Esta estructura especifica las páginas de propiedades que desea que el editor muestre y otra información que determine las opciones de edición disponibles para el usuario.
Para proporcionar información de seguridad sobre el objeto que se está editando.
La implementación de GetSecurity pasa el descriptor de seguridad inicial del objeto al editor. Los métodos GetAccessRights y MapGeneric proporcionan información sobre los derechos de acceso del objeto. El método GetInheritTypes proporciona información sobre cómo los objetos secundarios pueden heredar los AEC del objeto.
Para volver a pasar la entrada del usuario a la aplicación.
Cuando el usuario hace clic en Ok o Apply, el editor llama al método SetSecurity para devolver un descriptor de seguridad que contiene los cambios del usuario.