Editor controllo di accesso
L'editor di controllo di accesso è un set di finestre delle proprietà e pagine delle proprietà che consentono all'utente di visualizzare e modificare i componenti del descrittore di sicurezza di un oggetto. L'editor è costituito da due parti principali:
- Una pagina delle proprietà di sicurezza di base che fornisce un'interfaccia semplice per la modifica delle voci di controllo di accesso (ACL) di un oggetto nell'elenco di controllo di accesso discrezionale (DACL). Questa pagina può includere un pulsante facoltativo avanzate che visualizza la finestra delle proprietà di sicurezza avanzata.
- Una finestra delle proprietà di sicurezza avanzata con pagine delle proprietà che consentono all'utente di modificare l'elenco di controllo di accesso di sistema dell'oggetto (SACL), modificare il proprietario dell'oggetto o eseguire la modifica avanzata dell'elenco DACL dell'oggetto.
La funzione CreateSecurityPage crea la pagina delle proprietà di sicurezza di base. È quindi possibile utilizzare la funzionePropertySheet o il messaggio di PSM_ADDPAGE per aggiungere questa pagina a una finestra delle proprietà.
In alternativa, è possibile utilizzare la funzioneEditSecurityper visualizzare una finestra delle proprietà contenente la pagina delle proprietà di sicurezza di base.
Sia per CreateSecurityPage che per EditSecurity, il chiamante deve passare un puntatore a un'implementazione dell'interfacciaISecurityInformation. L'editor di controllo di accesso chiama i metodi di questa interfaccia per recuperare le informazioni di controllo di accesso sull'oggetto da modificare e per passare nuovamente l'input dell'utente all'applicazione. I metodi ISecurityInformation hanno i seguenti scopi:
Per inizializzare le pagine delle proprietà.
L'implementazione del metodoGetObjectInformationpassa una struttura SI_OBJECT_INFO all'editor. Questa struttura specifica le pagine delle proprietà che si desidera che l'editor visualizzi e altre informazioni che determinano le opzioni di modifica disponibili per l'utente.
Per fornire informazioni di sicurezza sull'oggetto da modificare.
L'implementazione delGetSecuritypassa il descrittore di sicurezza iniziale dell'oggetto all'editor. I metodi GetAccessRights e MapGeneric forniscono informazioni sui diritti di accesso dell'oggetto. Il metodo GetInheritTypes fornisce informazioni su come gli ACL dell'oggetto possono essere ereditati dagli oggetti figlio.
Per passare di nuovo l'input dell'utente all'applicazione.
Quando l'utente fa clic su Ok o Apply, l'editor chiama il metodoSetSecurityper passare un descrittore di sicurezza contenente le modifiche dell'utente.