Éditeur Access Control
L’éditeur de contrôle d’accès est un ensemble de feuilles de propriétés et de pages de propriétés qui permettent à l’utilisateur d’afficher et de modifier les composants du descripteur de sécurité d’un objet. L’éditeur se compose de deux parties main :
- Page de propriétés de sécurité de base qui fournit une interface simple pour modifier les entrées de contrôle d’accès (ACA) dans la liste de contrôle d’accès discrétionnaire (DACL) d’un objet. Cette page peut inclure un bouton Avancé facultatif qui affiche la feuille de propriétés de sécurité avancée.
- Feuille de propriétés de sécurité avancée avec des pages de propriétés qui permettent à l’utilisateur de modifier la liste de contrôle d’accès système (SACL) de l’objet, de modifier le propriétaire de l’objet ou d’effectuer une modification avancée de la liste de contrôle d’accès de l’objet.
La fonction CreateSecurityPage crée la page de propriétés de sécurité de base. Vous pouvez ensuite utiliser la fonction PropertySheet ou le message PSM_ADDPAGE pour ajouter cette page à une feuille de propriétés.
Vous pouvez également utiliser la fonction EditSecurity pour afficher une feuille de propriétés qui contient la page des propriétés de sécurité de base.
Pour CreateSecurityPage et EditSecurity, l’appelant doit passer un pointeur vers une implémentation de l’interface ISecurityInformation . L’éditeur de contrôle d’accès appelle les méthodes de cette interface pour récupérer les informations de contrôle d’accès sur l’objet en cours de modification et pour transmettre l’entrée de l’utilisateur à votre application. Les méthodes ISecurityInformation ont les objectifs suivants :
Pour initialiser les pages de propriétés.
Votre implémentation de la méthode GetObjectInformation transmet une structure SI_OBJECT_INFO à l’éditeur. Cette structure spécifie les pages de propriétés que l’éditeur doit afficher et d’autres informations qui déterminent les options de modification disponibles pour l’utilisateur.
Pour fournir des informations de sécurité sur l’objet en cours de modification.
Votre implémentation GetSecurity transmet le descripteur de sécurité initial de l’objet à l’éditeur. Les méthodes GetAccessRights et MapGeneric fournissent des informations sur les droits d’accès de l’objet. La méthode GetInheritTypes fournit des informations sur la façon dont les ACÉ de l’objet peuvent être héritées par des objets enfants.
Pour transmettre l’entrée de l’utilisateur à votre application.
Lorsque l’utilisateur clique sur Ok ou Appliquer, l’éditeur appelle votre méthode SetSecurity pour renvoyer un descripteur de sécurité contenant les modifications de l’utilisateur.