CDacl, classe

Cette classe est un wrapper pour une structure DACL (liste de contrôle d’accès discrétionnaire).

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class CDacl : public CAcl

Membres

Constructeurs publics

Nom Description
CDacl ::CDacl Constructeur .
CDacl ::~CDacl Destructeur.

Méthodes publiques

Nom Description
CDacl ::AddAllowedAce Ajoute un ACE autorisé (entrée de contrôle d’accès) à l’objet CDacl .
CDacl ::AddDeniedAce Ajoute un ACE refusé à l’objet CDacl .
CDacl ::GetAceCount Retourne le nombre d’ACL (entrées de contrôle d’accès) dans l’objet CDacl .
CDacl ::RemoveAce Supprime un ACE spécifique (entrée de contrôle d’accès) de l’objet CDacl .
CDacl ::RemoveAllAces Supprime toutes les ACL contenues dans l’objet CDacl .

Opérateurs publics

Nom Description
CDacl ::operator = Opérateur d'assignation.

Notes

Le descripteur de sécurité d’un objet peut contenir une liste DACL. Une liste de contrôle d’accès contient zéro ou plusieurs ACL (entrées de contrôle d’accès) qui identifient les utilisateurs et les groupes qui peuvent accéder à l’objet. Si une liste DACL est vide (autrement dit, elle contient zéro AE), aucun accès n’est explicitement accordé, de sorte que l’accès est implicitement refusé. Toutefois, si le descripteur de sécurité d’un objet n’a pas de liste de contrôle de contrôle d’accès, l’objet n’est pas protégé et tout le monde a un accès complet.

Pour récupérer la liste DACL d’un objet, vous devez être propriétaire de l’objet ou avoir READ_CONTROL accès à l’objet. Pour modifier la liste DACL d’un objet, vous devez avoir WRITE_DAC accès à l’objet.

Utilisez les méthodes de classe fournies pour créer, ajouter, supprimer et supprimer des AE de l’objet CDacl . Voir aussi AtlGetDacl et AtlSetDacl.

Pour une présentation du modèle de contrôle d’accès dans Windows, consultez Contrôle d’accès dans le Kit de développement logiciel (SDK) Windows.

Hiérarchie d'héritage

CAcl

CDacl

Spécifications

En-tête : atlsecurity.h

CDacl ::AddAllowedAce

Ajoute un ACE autorisé (entrée de contrôle d’accès) à l’objet CDacl .

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Paramètres

rSid
Objet CSid .

AccessMask
Spécifie le masque des droits d’accès à autoriser pour l’objet spécifié CSid .

AceFlags
Ensemble d’indicateurs de bits qui contrôlent l’héritage ACE.

pObjectType
Type d'objet.

pInheritedObjectType
Type d’objet hérité.

Valeur de retour

Retourne TRUE si l’ACE est ajouté à l’objet CDacl , FALSE en cas d’échec.

Notes

Un CDacl objet contient zéro ou plusieurs ACL (entrées de contrôle d’accès) qui identifient les utilisateurs et les groupes qui peuvent accéder à l’objet. Cette méthode ajoute un ACE qui autorise l’accès à l’objet CDacl .

Consultez ACE_HEADER pour obtenir une description des différents indicateurs qui peuvent être définis dans le AceFlags paramètre.

CDacl ::AddDeniedAce

Ajoute un ACE refusé (entrée de contrôle d’accès) à l’objet CDacl .

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Paramètres

rSid
Objet CSid.

AccessMask
Spécifie le masque des droits d’accès à refuser pour l’objet spécifié CSid .

AceFlags
Ensemble d’indicateurs de bits qui contrôlent l’héritage ACE. La valeur par défaut est 0 dans la première forme de la méthode.

pObjectType
Type d'objet.

pInheritedObjectType
Type d’objet hérité.

Valeur de retour

Retourne TRUE si l’ACE est ajouté à l’objet CDacl , FALSE en cas d’échec.

Notes

Un CDacl objet contient zéro ou plusieurs ACL (entrées de contrôle d’accès) qui identifient les utilisateurs et les groupes qui peuvent accéder à l’objet. Cette méthode ajoute un ACE qui refuse l’accès à l’objet CDacl .

Consultez ACE_HEADER pour obtenir une description des différents indicateurs qui peuvent être définis dans le AceFlags paramètre.

CDacl ::CDacl

Constructeur .

CDacl (const ACL& rhs) throw(...);
CDacl () throw();

Paramètres

rhs
Structure existante ACL (liste de contrôle d’accès).

Notes

L’objet CDacl peut éventuellement être créé à l’aide d’une structure existante ACL . Il est important de noter que seule une liste DACL (liste de contrôle d’accès discrétionnaire) et non une liste de contrôle d’accès système (liste de contrôle d’accès système) doit être passée en tant que paramètre. Dans les builds de débogage, le passage d’une liste de contrôle d’accès partagé entraîne une assertion. Dans les builds de mise en production, le passage d’une liste de contrôle d’accès entraîne l’ignorer des ACL (entrées de contrôle d’accès) et aucune erreur ne se produit.

CDacl ::~CDacl

Destructeur.

~CDacl () throw();

Notes

Le destructeur libère toutes les ressources acquises par l’objet, y compris toutes les ACL (entrées de contrôle d’accès) à l’aide de CDacl ::RemoveAllAces.

CDacl ::GetAceCount

Retourne le nombre d’ACL (entrées de contrôle d’accès) dans l’objet CDacl .

UINT GetAceCount() const throw();

Valeur de retour

Retourne le nombre d’ACL contenues dans l’objet CDacl .

CDacl ::operator =

Opérateur d'assignation.

CDacl& operator= (const ACL& rhs) throw(...);

Paramètres

rhs
Liste de contrôle d’accès (ACL) à affecter à l’objet existant.

Valeur de retour

Retourne une référence à l’objet mis à jour CDacl .

Notes

Vous devez vous assurer que vous transmettez uniquement une liste de contrôle d’accès discrétionnaire (DACL) à cette fonction. Le passage d’une liste de contrôle d’accès système à cette fonction entraîne une ASSERTION dans les builds de débogage, mais n’entraîne aucune erreur dans les builds de mise en production.

CDacl ::RemoveAce

Supprime un ACE spécifique (entrée de contrôle d’accès) de l’objet CDacl .

void RemoveAce(UINT nIndex) throw();

Paramètres

nIndex
Index de l’entrée ACE à supprimer.

Notes

Cette méthode est dérivée de CAtlArray ::RemoveAt.

CDacl ::RemoveAllAces

Supprime toutes les AE (entrées de contrôle d’accès) contenues dans l’objet CDacl .

void RemoveAllAces() throw();

Notes

Supprime chaque structure (le cas échéant) de chaque ACE structure (le cas échéant) dans l’objet CDacl .

Voir aussi

Exemple de sécurité
CAcl, classe
ACL
Aces
Vue d’ensemble de la classe
Fonctions globales de sécurité