Editor de 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 principais:
- Uma página de propriedade de segurança básica que fornece uma interface simples para editar as entradas de controle de acesso (ACEs) na lista de controle de acesso discricionário de um objeto (DACL). Esta página pode incluir um botão opcional Advanced 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 lista de controle de acesso do sistema do objeto (SACL), 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 propriedade de segurança básica. 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 propriedade de segurança básica.
Para CreateSecurityPage e EditSecurity, o chamador deve passar um ponteiro para uma implementação da interfaceISecurityInformation. 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étodoGetObjectInformationpassa uma estrutura de 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.
A implementação doGetSecuritypassa ode descritor de segurança deinicial 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 as ACEs do objeto podem ser herdadas por objetos filho.
Para passar a entrada do usuário de volta para seu aplicativo.
Quando o usuário clica Ok ou Aplicar, o editor chama seu métodoSetSecuritypara passar um descritor de segurança contendo as alterações do usuário.