editor Controllo di accesso
L'editor di controllo di accesso è un set di fogli di 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:
- Pagina della proprietà di sicurezza di base che fornisce un'interfaccia semplice per modificare le voci di controllo di accesso (ACL) di un oggetto nell'elenco di controllo di accesso discrezionale di un oggetto. Questa pagina può includere un pulsante avanzato facoltativo che visualizza la scheda delle proprietà di sicurezza avanzata.
- Foglio delle proprietà di sicurezza avanzato con pagine di proprietà che consentono all'utente di modificare l'elenco di controllo di accesso del sistema dell'oggetto (SACL), modificare il proprietario dell'oggetto o eseguire modifiche avanzate dell'elenco di controllo di accesso dell'oggetto.
La funzione CreateSecurityPage crea la pagina delle proprietà di sicurezza di base. È quindi possibile usare la funzione PropertySheet o il messaggio PSM_ADDPAGE per aggiungere questa pagina a un foglio delle proprietà.
In alternativa, è possibile usare la funzione EditSecurity per visualizzare un foglio delle proprietà contenente la pagina della proprietà di sicurezza di base.
Per CreateSecurityPage e EditSecurity, il chiamante deve passare un puntatore a un'implementazione dell'interfaccia ISecurityInformation . L'editor di controllo di accesso chiama i metodi di questa interfaccia per recuperare le informazioni di controllo di accesso sull'oggetto modificato e per passare l'input dell'utente all'applicazione. I metodi ISecurityInformation hanno gli scopi seguenti:
Per inizializzare le pagine delle proprietà.
L'implementazione del metodo GetObjectInformation passa 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 di GetSecurity passa 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 sul modo in cui gli ACL dell'oggetto possono essere ereditati dagli oggetti figlio.
Per passare nuovamente l'input dell'utente all'applicazione.
Quando l'utente fa clic su Okay o Applica, l'editor chiama il metodo SetSecurity per passare un descrittore di sicurezza contenente le modifiche dell'utente.