Partager via


CSecurityDesc, classe

Cette classe est un wrapper pour la SECURITY_DESCRIPTOR structure.

Important

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

Syntaxe

class CSecurityDesc

Membres

Constructeurs publics

Nom Description
CSecurityDesc ::CSecurityDesc Constructeur .
CSecurityDesc ::~CSecurityDesc Destructeur.

Méthodes publiques

Nom Description
CSecurityDesc ::FromString Convertit un descripteur de sécurité au format chaîne en descripteur de sécurité valide et fonctionnel.
CSecurityDesc ::GetControl Récupère les informations de contrôle du descripteur de sécurité.
CSecurityDesc ::GetDacl Récupère les informations de liste de contrôle d’accès discrétionnaire (DACL) du descripteur de sécurité.
CSecurityDesc ::GetGroup Récupère les informations du groupe principal à partir du descripteur de sécurité.
CSecurityDesc ::GetOwner Récupère l’informaton du propriétaire à partir du descripteur de sécurité.
CSecurityDesc ::GetPSECURITY_DESCRIPTOR Retourne un pointeur vers la SECURITY_DESCRIPTOR structure.
CSecurityDesc ::GetSacl Récupère les informations de liste de contrôle d’accès système (SACL) du descripteur de sécurité.
CSecurityDesc ::IsDaclAutoInherited Détermine si la liste DACL est configurée pour prendre en charge la propagation automatique.
CSecurityDesc ::IsDaclDefaulted Détermine si le descripteur de sécurité est configuré avec une liste daCL par défaut.
CSecurityDesc ::IsDaclPresent Détermine si le descripteur de sécurité contient une liste DACL.
CSecurityDesc ::IsDaclProtected Détermine si la liste dacl est configurée pour empêcher les modifications.
CSecurityDesc ::IsGroupDefaulted Détermine si l’identificateur de sécurité du descripteur de groupe (SID) a été défini par défaut.
CSecurityDesc ::IsOwnerDefaulted Détermine si le SID propriétaire du descripteur de sécurité a été défini par défaut.
CSecurityDesc ::IsSaclAutoInherited Détermine si la liste de contrôle d’accès partagé est configurée pour prendre en charge la propagation automatique.
CSecurityDesc ::IsSaclDefaulted Détermine si le descripteur de sécurité est configuré avec une sacl par défaut.
CSecurityDesc ::IsSaclPresent Détermine si le descripteur de sécurité contient une liste de contrôle d’accès partagé.
CSecurityDesc ::IsSaclProtected Détermine si la liste de contrôle d’accès partagé est configurée pour empêcher les modifications.
CSecurityDesc ::IsSelfRelative Détermine si le descripteur de sécurité est au format auto-relatif.
CSecurityDesc ::MakeAbsolute Appelez cette méthode pour convertir le descripteur de sécurité en format absolu.
CSecurityDesc ::MakeSelfRelative Appelez cette méthode pour convertir le descripteur de sécurité en format auto-relatif.
CSecurityDesc ::SetControl Définit les bits de contrôle d'un descripteur de sécurité.
CSecurityDesc ::SetDacl Définit des informations dans une liste dacl. Si une liste DACL est déjà présente dans le descripteur de sécurité, elle est remplacée.
CSecurityDesc ::SetGroup Définit les informations de groupe principal d’un descripteur de sécurité de format absolu, en remplaçant les informations de groupe principal déjà présentes.
CSecurityDesc ::SetOwner Définit les informations de propriétaire d’un descripteur de sécurité de format absolu, en remplaçant les informations de propriétaire déjà présentes.
CSecurityDesc ::SetSacl Définit des informations dans une liste de contrôle d’accès partagé. Si une liste de contrôle d’accès partagé est déjà présente dans le descripteur de sécurité, elle est remplacée.
CSecurityDesc ::ToString Convertit un descripteur de sécurité en format de chaîne.

Opérateurs publics

Nom Description
CSecurityDesc ::operator const SECURITY_DESCRIPTOR * Retourne un pointeur vers la SECURITY_DESCRIPTOR structure.
CSecurityDesc ::operator = Opérateur d'assignation.

Notes

La SECURITY_DESCRIPTOR structure contient les informations de sécurité associées à un objet. Les applications utilisent cette structure pour définir et interroger l’état de sécurité d’un objet. Voir aussi AtlGetSecurityDescriptor.

Les applications ne doivent pas modifier directement la SECURITY_DESCRIPTOR structure et utiliser plutôt les méthodes de classe fournies.

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.

Spécifications

En-tête : atlsecurity.h

CSecurityDesc ::CSecurityDesc

Constructeur .

CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);

Paramètres

rhs
Objet CSecurityDesc ou SECURITY_DESCRIPTOR structure à affecter au nouvel CSecurityDesc objet.

Notes

L’objet CSecurityDesc peut éventuellement être créé à l’aide d’une SECURITY_DESCRIPTOR structure ou d’un objet précédemment défini CSecurityDesc .

CSecurityDesc ::~CSecurityDesc

Destructeur.

virtual ~CSecurityDesc() throw();

Notes

Le destructeur libère toutes les ressources allouées.

CSecurityDesc ::FromString

Convertit un descripteur de sécurité au format chaîne en descripteur de sécurité valide et fonctionnel.

bool FromString(LPCTSTR pstr) throw(...);

Paramètres

pstr
Pointeur vers une chaîne terminée par null qui contient le descripteur de sécurité au format chaîne à convertir.

Valeur de retour

Retourne true en cas de réussite. Lève une exception en cas d’échec.

Notes

La chaîne peut être créée à l’aide de CSecurityDesc ::ToString. La conversion du descripteur de sécurité en chaîne facilite le stockage et la transmission.

Cette méthode appelle ConvertStringSecurityDescriptorToSecurityDescriptor.

CSecurityDesc ::GetControl

Récupère les informations de contrôle du descripteur de sécurité.

bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();

Paramètres

psdc
Pointeur vers une SECURITY_DESCRIPTOR_CONTROL structure qui reçoit les informations de contrôle du descripteur de sécurité.

Valeur de retour

Retourne true si la méthode réussit, false si elle échoue.

Notes

Cette méthode appelle GetSecurityDescriptorControl.

CSecurityDesc ::GetDacl

Récupère les informations de liste de contrôle d’accès discrétionnaire (DACL) du descripteur de sécurité.

bool GetDacl(
    CDacl* pDacl,
    bool* pbPresent = NULL,
    bool* pbDefaulted = NULL) const throw(...);

Paramètres

pDacl
Pointeur vers une CDacl structure dans laquelle stocker une copie du daCL du descripteur de sécurité. Si une liste de contrôle d’accès discrétionnaire existe, la méthode définit pDacl à l’adresse de la liste de contrôle d’accès discrétionnaire du descripteur de sécurité. Si une liste de contrôle d’accès discrétionnaire n’existe pas, aucune valeur n’est stockée.

pbPresent
Pointeur vers une valeur qui indique la présence d’une liste de contrôle d’accès discrétionnaire dans le descripteur de sécurité spécifié. Si le descripteur de sécurité contient une liste de contrôle d’accès discrétionnaire, ce paramètre est défini sur true. Si le descripteur de sécurité ne contient pas de liste de contrôle d’accès discrétionnaire, ce paramètre a la valeur false.

pbDefaulted
Pointeur vers un indicateur défini sur la valeur de l’indicateur de SE_DACL_DEFAULTED dans la SECURITY_DESCRIPTOR_CONTROL structure si une liste de contrôle d’accès discrétionnaire existe pour le descripteur de sécurité. Si cet indicateur est vrai, la liste de contrôle d’accès discrétionnaire a été récupérée par un mécanisme par défaut ; si la valeur est false, la liste de contrôle d’accès discrétionnaire a été explicitement spécifiée par un utilisateur.

Valeur de retour

Retourne true si la méthode réussit, false si elle échoue.

CSecurityDesc ::GetGroup

Récupère les informations du groupe principal à partir du descripteur de sécurité.

bool GetGroup(
    CSid* pSid,
    bool* pbDefaulted = NULL) const throw(...);

Paramètres

pSid
Pointeur vers un CSid (identificateur de sécurité) qui reçoit une copie du groupe stocké dans CDacl.

pbDefaulted
Pointeur vers un indicateur défini sur la valeur de l’indicateur SE_GROUP_DEFAULTED dans la SECURITY_DESCRIPTOR_CONTROL structure lorsque la méthode retourne.

Valeur de retour

Retourne true si la méthode réussit, false si elle échoue.

CSecurityDesc ::GetOwner

Récupère l’informaton du propriétaire à partir du descripteur de sécurité.

bool GetOwner(
    CSid* pSid,
    bool* pbDefaulted = NULL) const throw(...);

Paramètres

pSid
Pointeur vers un CSid (identificateur de sécurité) qui reçoit une copie du groupe stocké dans CDacl.

pbDefaulted
Pointeur vers un indicateur défini sur la valeur de l’indicateur SE_OWNER_DEFAULTED dans la SECURITY_DESCRIPTOR_CONTROL structure lorsque la méthode retourne.

Valeur de retour

Retourne true si la méthode réussit, false si elle échoue.

CSecurityDesc ::GetPSECURITY_DESCRIPTOR

Retourne un pointeur vers la SECURITY_DESCRIPTOR structure.

const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();

Valeur de retour

Retourne un pointeur vers la structure SECURITY_DESCRIPTOR .

CSecurityDesc ::GetSacl

Récupère les informations de liste de contrôle d’accès système (SACL) du descripteur de sécurité.

bool GetSacl(
    CSacl* pSacl,
    bool* pbPresent = NULL,
    bool* pbDefaulted = NULL) const throw(...);

Paramètres

pSacl
Pointeur vers une CSacl structure dans laquelle stocker une copie de la saCL du descripteur de sécurité. Si une liste de contrôle d’accès système existe, la méthode définit pSacl à l’adresse de l’ACL système du descripteur de sécurité. Si une liste de contrôle d’accès système n’existe pas, aucune valeur n’est stockée.

pbPresent
Pointeur vers un indicateur défini par la méthode pour indiquer la présence d’une liste de contrôle d’accès système dans le descripteur de sécurité spécifié. Si le descripteur de sécurité contient une liste de contrôle d’accès système, ce paramètre a la valeur true. Si le descripteur de sécurité ne contient pas de liste de contrôle d’accès système, ce paramètre a la valeur false.

pbDefaulted
Pointeur vers un indicateur défini sur la valeur de l’indicateur de SE_SACL_DEFAULTED dans la SECURITY_DESCRIPTOR_CONTROL structure si une liste de contrôle d’accès système existe pour le descripteur de sécurité.

Valeur de retour

Retourne true si la méthode réussit, false si elle échoue.

CSecurityDesc ::IsDaclAutoInherited

Détermine si la liste de contrôle d’accès discrétionnaire (DACL) est configurée pour prendre en charge la propagation automatique.

bool IsDaclAutoInherited() const throw();

Valeur de retour

Retourne true si le descripteur de sécurité contient une liste de contrôle d’accès qui est configurée pour prendre en charge la propagation automatique des entrées de contrôle d’accès héritées (ACL) vers des objets enfants existants. Sinon, retourne false.

Notes

Le système définit ce bit lorsqu’il effectue l’algorithme d’héritage automatique pour l’objet et ses objets enfants existants.

CSecurityDesc ::IsDaclDefaulted

Détermine si le descripteur de sécurité est configuré avec une liste de contrôle d’accès discrétionnaire par défaut (DACL).

bool IsDaclDefaulted() const throw();

Valeur de retour

Retourne true si le descripteur de sécurité contient une liste daCL par défaut, false sinon.

Notes

Cet indicateur peut affecter la façon dont le système traite la liste dacl, en ce qui concerne l’héritage de l’entrée de contrôle d’accès (ACE). Par exemple, si le créateur d’un objet ne spécifie pas de liste de contrôle d’accès, l’objet reçoit la liste DACL par défaut du jeton d’accès du créateur. Le système ignore cet indicateur si l’indicateur SE_DACL_PRESENT n’est pas défini.

Cet indicateur est utilisé pour déterminer comment la liste DACL finale sur l’objet doit être calculée et n’est pas stockée physiquement dans le contrôle de descripteur de sécurité de l’objet sécurisable.

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetDacl .

CSecurityDesc ::IsDaclPresent

Détermine si le descripteur de sécurité contient une liste de contrôle d’accès discrétionnaire (DACL).

bool IsDaclPresent() const throw();

Valeur de retour

Retourne true si le descripteur de sécurité contient une liste daCL, false sinon.

Notes

Si cet indicateur n’est pas défini ou si cet indicateur est défini et que la liste de contrôle d’accès est NULL, le descripteur de sécurité autorise l’accès total à tout le monde.

Cet indicateur est utilisé pour contenir les informations de sécurité spécifiées par un appelant jusqu’à ce que le descripteur de sécurité soit associé à un objet sécurisable. Une fois le descripteur de sécurité associé à un objet sécurisable, l’indicateur SE_DACL_PRESENT est toujours défini dans le contrôle de descripteur de sécurité.

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetDacl .

CSecurityDesc ::IsDaclProtected

Détermine si la liste de contrôle d’accès discrétionnaire (DACL) est configurée pour empêcher les modifications.

bool IsDaclProtected() const throw();

Valeur de retour

Retourne true si la liste de contrôle d’accès est configurée pour empêcher le descripteur de sécurité d’être modifié par des entrées de contrôle d’accès héritées (ACL). Sinon, retourne false.

Notes

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetDacl .

Cette méthode prend en charge la propagation automatique des AE hériter.

CSecurityDesc ::IsGroupDefaulted

Détermine si l’identificateur de sécurité du descripteur de groupe (SID) a été défini par défaut.

bool IsGroupDefaulted() const throw();

Valeur de retour

Retourne true si un mécanisme par défaut, plutôt que le fournisseur d’origine du descripteur de sécurité, a fourni le SID de groupe du descripteur de sécurité. Sinon, retourne false.

Notes

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetGroup .

CSecurityDesc ::IsOwnerDefaulted

Détermine si l’identificateur de sécurité du descripteur propriétaire (SID) a été défini par défaut.

bool IsOwnerDefaulted() const throw();

Valeur de retour

Retourne true si un mécanisme par défaut, plutôt que le fournisseur d’origine du descripteur de sécurité, a fourni le SID propriétaire du descripteur de sécurité. Sinon, retourne false.

Notes

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetOwner .

CSecurityDesc ::IsSaclAutoInherited

Détermine si la liste de contrôle d’accès système (SACL) est configurée pour prendre en charge la propagation automatique.

bool IsSaclAutoInherited() const throw();

Valeur de retour

Retourne la valeur true si le descripteur de sécurité contient une liste de contrôle d’accès qui est configurée pour prendre en charge la propagation automatique d’entrées de contrôle d’accès héritées (ACL) vers des objets enfants existants. Sinon, retourne false.

Notes

Le système définit ce bit lorsqu’il effectue l’algorithme d’héritage automatique pour l’objet et ses objets enfants existants.

CSecurityDesc ::IsSaclDefaulted

Détermine si le descripteur de sécurité est configuré avec une liste de contrôle d’accès système (SACL) par défaut.

bool IsSaclDefaulted() const throw();

Valeur de retour

Retourne true si le descripteur de sécurité contient une liste de contrôle d’accès partagé par défaut, false dans le cas contraire.

Notes

Cet indicateur peut affecter la façon dont le système traite la liste de contrôle d’accès par rapport à l’héritage d’entrée de contrôle d’accès (ACE). Le système ignore cet indicateur si l’indicateur SE_SACL_PRESENT n’est pas défini.

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetSacl .

CSecurityDesc ::IsSaclPresent

Détermine si le descripteur de sécurité contient une liste de contrôle d’accès système (SACL).

bool IsSaclPresent() const throw();

Valeur de retour

Retourne la valeur true si le descripteur de sécurité contient une liste de contrôle d’accès partagé (SACL), false dans le cas contraire.

Notes

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetSacl .

CSecurityDesc ::IsSaclProtected

Détermine si la liste de contrôle d’accès système (SACL) est configurée pour empêcher les modifications.

bool IsSaclProtected() const throw();

Valeur de retour

Retourne la valeur true si la liste de contrôle d’accès est configurée pour empêcher la modification du descripteur de sécurité par des entrées de contrôle d’accès héritées (ACL). Sinon, retourne false.

Notes

Pour définir cet indicateur, utilisez la méthode CSecurityDesc ::SetSacl .

Cette méthode prend en charge la propagation automatique des AE hériter.

CSecurityDesc ::IsSelfRelative

Détermine si le descripteur de sécurité est au format auto-relatif.

bool IsSelfRelative() const throw();

Valeur de retour

Retourne true si le descripteur de sécurité est au format auto-relatif avec toutes les informations de sécurité dans un bloc de mémoire contigu. Retourne false si le descripteur de sécurité est au format absolu. Pour plus d’informations, consultez les descripteurs de sécurité absolus et auto-relatifs.

CSecurityDesc ::MakeAbsolute

Appelez cette méthode pour convertir le descripteur de sécurité en format absolu.

bool MakeAbsolute() throw(...);

Valeur de retour

Retourne true si la méthode réussit, false sinon.

Notes

Un descripteur de sécurité au format absolu contient des pointeurs vers les informations qu’il contient, plutôt que les informations elles-mêmes. Un descripteur de sécurité au format auto-relatif contient les informations dans un bloc de mémoire contiguë. Dans un descripteur de sécurité auto-relatif, une SECURITY_DESCRIPTOR structure démarre toujours les informations, mais les autres composants du descripteur de sécurité peuvent suivre la structure dans n’importe quel ordre. Au lieu d’utiliser des adresses mémoire, les composants du descripteur de sécurité auto-relatif sont identifiés par des décalages depuis le début du descripteur de sécurité. Ce format est utile lorsqu’un descripteur de sécurité doit être stocké sur un disque ou transmis par le biais d’un protocole de communication. Pour plus d’informations, consultez les descripteurs de sécurité absolus et auto-relatifs.

CSecurityDesc ::MakeSelfRelative

Appelez cette méthode pour convertir le descripteur de sécurité en format auto-relatif.

bool MakeSelfRelative() throw(...);

Valeur de retour

Retourne true si la méthode réussit, false sinon.

Notes

Un descripteur de sécurité au format absolu contient des pointeurs vers les informations qu’il contient, au lieu de contenir les informations proprement dites. Un descripteur de sécurité au format auto-relatif contient les informations dans un bloc de mémoire contiguë. Dans un descripteur de sécurité auto-relatif, une SECURITY_DESCRIPTOR structure démarre toujours les informations, mais les autres composants du descripteur de sécurité peuvent suivre la structure dans n’importe quel ordre. Au lieu d’utiliser des adresses mémoire, les composants du descripteur de sécurité sont identifiés par des décalages depuis le début du descripteur de sécurité. Ce format est utile lorsqu’un descripteur de sécurité doit être stocké sur un disque ou transmis par le biais d’un protocole de communication. Pour plus d’informations, consultez les descripteurs de sécurité absolus et auto-relatifs.

CSecurityDesc ::operator =

Opérateur d'assignation.

CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);

Paramètres

rhs
Structure SECURITY_DESCRIPTOR ou CSecurityDesc objet à affecter à l’objet CSecurityDesc .

Valeur de retour

Retourne l’objet mis à jour CSecurityDesc .

CSecurityDesc ::operator const SECURITY_DESCRIPTOR *

Convertit une valeur en pointeur vers la SECURITY_DESCRIPTOR structure.

operator const SECURITY_DESCRIPTOR *() const throw();

CSecurityDesc ::SetControl

Définit les bits de contrôle d'un descripteur de sécurité.

bool SetControl(
    SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
    SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();

Paramètres

ControlBitsOfInterest
Masque SECURITY_DESCRIPTOR_CONTROL qui indique les bits de contrôle à définir. Pour obtenir la liste des indicateurs qui peuvent être définis, consultez SetSecurityDescriptorControl.

ControlBitsToSet
Masque SECURITY_DESCRIPTOR_CONTROL qui indique les nouvelles valeurs des bits de contrôle spécifiés par le masque ControlBitsOfInterest . Ce paramètre peut être une combinaison des indicateurs répertoriés pour le paramètre ControlBitsOfInterest .

Valeur de retour

Retourne la valeur true en cas de réussite, false en cas d'échec.

Notes

Cette méthode appelle SetSecurityDescriptorControl.

CSecurityDesc ::SetDacl

Définit des informations dans une liste de contrôle d’accès discrétionnaire (DACL). Si une liste DACL est déjà présente dans le descripteur de sécurité, elle est remplacée.

inline void SetDacl(
    bool bPresent = true,
    bool bDefaulted = false) throw(...);

inline void SetDacl(
    const CDacl& Dacl,
    bool bDefaulted = false) throw(...);

Paramètres

Dacl
Référence à un CDacl objet spécifiant la liste DACL pour le descripteur de sécurité. Ce paramètre ne doit pas être NULL. Pour définir une DACL NULL dans le descripteur de sécurité, la première forme de la méthode doit être utilisée avec bPresent défini sur false.

bPresent
Spécifie un indicateur indiquant la présence d’une liste dacl dans le descripteur de sécurité. Si ce paramètre est vrai, la méthode définit l’indicateur SE_DACL_PRESENT dans la SECURITY_DESCRIPTOR_CONTROL structure et utilise les valeurs des paramètres Dacl et bDefaulted . Si elle est false, la méthode efface l’indicateur SE_DACL_PRESENT et bDefaulted est ignoré.

bDefaulted
Spécifie un indicateur indiquant la source de la liste de contrôle d’accès. Si cet indicateur est vrai, la liste dacl a été récupérée par un mécanisme par défaut. Si la valeur est false, la liste dacl a été spécifiée explicitement par un utilisateur. La méthode stocke cette valeur dans l’indicateur SE_DACL_DEFAULTED de la SECURITY_DESCRIPTOR_CONTROL structure. Si ce paramètre n’est pas spécifié, l’indicateur SE_DACL_DEFAULTED est effacé.

Valeur de retour

Retourne la valeur true en cas de réussite, false en cas d'échec.

Notes

Il existe une différence importante entre un DACL vide et un DACL inexistant. Lorsqu’une liste de contrôle d’accès est vide, elle ne contient aucune entrée de contrôle d’accès et aucun droit d’accès n’a été explicitement accordé. Par conséquent, l’accès à l’objet est implicitement refusé. Lorsqu’un objet n’a pas de liste de contrôle d’accès, d’autre part, aucune protection n’est affectée à l’objet, et toute demande d’accès est accordée.

CSecurityDesc ::SetGroup

Définit les informations de groupe principal d’un descripteur de sécurité de format absolu, en remplaçant les informations de groupe principal déjà présentes.

bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);

Paramètres

Sid
Référence à un objet CSid pour le nouveau groupe principal du descripteur de sécurité. Ce paramètre ne doit pas être NULL. Un descripteur de sécurité peut être marqué comme n’ayant pas de liste de contrôle d’accès partagé ou de contrôle d’accès partagé, mais il doit avoir un groupe et un propriétaire, même s’il s’agit du SID NULL (qui est un SID intégré avec une signification spéciale).

bDefaulted
Indique si les informations du groupe principal ont été dérivées d’un mécanisme par défaut. Si cette valeur est true, il s’agit d’informations par défaut et la méthode stocke cette valeur en tant qu’indicateur de SE_GROUP_DEFAULTED dans la SECURITY_DESCRIPTOR_CONTROL structure. Si ce paramètre est égal à zéro, l’indicateur SE_GROUP_DEFAULTED est effacé.

Valeur de retour

Retourne la valeur true en cas de réussite, false en cas d'échec.

CSecurityDesc ::SetOwner

Définit les informations de propriétaire d’un descripteur de sécurité de format absolu. Il remplace toutes les informations de propriétaire déjà présentes.

bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);

Paramètres

Sid
Objet CSid pour le nouveau propriétaire principal du descripteur de sécurité. Ce paramètre ne doit pas être NULL.

bDefaulted
Indique si les informations du propriétaire sont dérivées d’un mécanisme par défaut. Si cette valeur est true, il s’agit d’informations par défaut. La méthode stocke cette valeur comme indicateur de SE_OWNER_DEFAULTED dans la SECURITY_DESCRIPTOR_CONTROL structure. Si ce paramètre est égal à zéro, l’indicateur SE_OWNER_DEFAULTED est effacé.

Valeur de retour

Retourne la valeur true en cas de réussite, false en cas d'échec.

CSecurityDesc ::SetSacl

Définit des informations dans une liste de contrôle d’accès système (SACL). Si une liste de contrôle d’accès partagé est déjà présente dans le descripteur de sécurité, elle est remplacée.

bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);

Paramètres

Sacl
Pointeur vers un CSacl objet spécifiant la liste de contrôle d’accès partagé pour le descripteur de sécurité. Ce paramètre ne doit pas être NULL et doit être un objet CSacl. Contrairement aux dll DACL, il n’existe aucune différence entre NULL et une clé SACL vide, car les objets SACL ne spécifient pas de droits d’accès, uniquement les informations d’audit.

bDefaulted
Spécifie un indicateur indiquant la source de la liste de contrôle d’accès partagé. Si cet indicateur est vrai, la liste de contrôle d’accès partagé a été récupérée par un mécanisme par défaut. Si la valeur est false, la liste de contrôle d’accès partagé a été spécifiée explicitement par un utilisateur. La méthode stocke cette valeur dans l’indicateur SE_SACL_DEFAULTED de la SECURITY_DESCRIPTOR_CONTROL structure. Si ce paramètre n’est pas spécifié, l’indicateur SE_SACL_DEFAULTED est effacé.

Valeur de retour

Retourne la valeur true en cas de réussite, false en cas d'échec.

CSecurityDesc ::ToString

Convertit un descripteur de sécurité en format de chaîne.

bool ToString(
    CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
    GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
    SACL_SECURITY_INFORMATION) const throw(...);

Paramètres

pstr
Pointeur vers une chaîne terminée par null qui recevra le descripteur de sécurité au format chaîne.

si
Spécifie une combinaison d’indicateurs de bits SECURITY_INFORMATION pour indiquer les composants du descripteur de sécurité à inclure dans la chaîne de sortie.

Valeur de retour

Retourne la valeur true en cas de réussite, false en cas d'échec.

Notes

Une fois que le descripteur de sécurité est au format de chaîne, il peut être plus facilement stocké ou transmis. Utilisez la CSecurityDesc::FromString méthode pour convertir la chaîne en descripteur de sécurité.

Le paramètre si peut contenir les indicateurs de SECURITY_INFORMATION suivants :

Value Signification
OWNER_SECURITY_INFORMATION Incluez le propriétaire.
GROUP_SECURITY_INFORMATION Incluez le groupe principal.
DACL_SECURITY_INFORMATION Incluez la liste DACL.
SACL_SECURITY_INFORMATION Incluez la liste de contrôle d’accès partagé.

Si la liste DACL a la valeur NULL et que le bit de contrôle SE_DACL_PRESENT est défini dans le descripteur de sécurité d’entrée, la méthode échoue.

Si la liste DACL a la valeur NULL et que le bit de contrôle SE_DACL_PRESENT n’est pas défini dans le descripteur de sécurité d’entrée, la chaîne de descripteur de sécurité résultante n’a pas de composant D : . Pour plus d’informations, consultez Le format de chaîne du descripteur de sécurité.

Cette méthode appelle ConvertStringSecurityDescriptorToSecurityDescriptor.

Voir aussi

Exemple de sécurité
SECURITY_DESCRIPTOR
Vue d’ensemble de la classe
Fonctions globales de sécurité