Editor Controle de Acesso
O editor de controle de acesso é um conjunto de folhas de propriedades e páginas de propriedades que permitem que o usuário exiba e modifique os componentes do descritor de segurança de um objeto. O editor consiste em duas partes main:
- Uma página de propriedade de segurança básica que fornece uma interface simples para editar as ACEs ( entradas de controle de acesso ) na DACL ( lista de controle de acesso discricionário ) de um objeto. Esta página pode incluir um botão Avançado opcional que exibe a folha de propriedades de segurança avançada.
- Uma folha de propriedades de segurança avançada com páginas de propriedades que permitem ao usuário editar a SACL ( lista de controle de acesso do sistema ) do objeto, alterar o proprietário do objeto ou executar a edição avançada da DACL do objeto.
A função CreateSecurityPage cria a página de propriedades básicas de segurança. Em seguida, você pode usar a função PropertySheet ou a mensagem PSM_ADDPAGE para adicionar esta página a uma folha de propriedades.
Como alternativa, você pode usar a função EditSecurity para exibir uma folha de propriedades que contém a página de propriedades de segurança básica.
Para CreateSecurityPage e EditSecurity, o chamador deve passar um ponteiro para uma implementação da interface ISecurityInformation . O editor de controle de acesso chama os métodos dessa interface para recuperar informações de controle de acesso sobre o objeto que está sendo editado e para passar a entrada do usuário de volta para seu aplicativo. Os métodos ISecurityInformation têm as seguintes finalidades:
Para inicializar as páginas de propriedades.
Sua implementação do método GetObjectInformation passa uma estrutura SI_OBJECT_INFO para o editor. Essa estrutura especifica as páginas de propriedades que você deseja que o editor exiba e outras informações que determinam as opções de edição disponíveis para o usuário.
Para fornecer informações de segurança sobre o objeto que está sendo editado.
Sua implementação GetSecurity passa o descritor de segurança inicial do objeto para o editor. Os métodos GetAccessRights e MapGeneric fornecem informações sobre os direitos de acesso do objeto. O método GetInheritTypes fornece informações sobre como os ACEs do objeto podem ser herdados por objetos filho.
Para passar a entrada do usuário de volta para seu aplicativo.
Quando o usuário clica em Ok ou Aplicar, o editor chama seu método SetSecurity para passar um descritor de segurança contendo as alterações do usuário.