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é au format 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é au format 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 :
Valeur | 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é