Partager via


RegistrySecurity Classe

Définition

Représente la sécurité du contrôle d'accès Windows d'une clé de Registre. Cette classe ne peut pas être héritée.

public ref class RegistrySecurity sealed : System::Security::AccessControl::NativeObjectSecurity
public sealed class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public sealed class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity
type RegistrySecurity = class
    inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type RegistrySecurity = class
    inherit NativeObjectSecurity
Public NotInheritable Class RegistrySecurity
Inherits NativeObjectSecurity
Héritage
Attributs

Exemples

Cette section contient deux exemples de code. Le premier exemple montre comment les règles compatibles se fusionnent lorsqu’elles sont ajoutées et supprimées, et le second montre comment les indicateurs d’héritage et de propagation affectent l’ajout et la suppression de règles.

Exemple 1

L’exemple de code suivant montre comment la RemoveAccessRule méthode supprime des droits d’une règle compatible et comment la AddAccessRule méthode fusionne les droits avec des règles compatibles.

L’exemple crée un RegistrySecurity objet et ajoute une règle qui autorise les droits d’utilisateur RegistryRights.ReadKey actuels. L’exemple crée ensuite une règle qui accorde à l’utilisateur RegistryRights.SetValue, avec les mêmes droits d’héritage et de propagation que la première règle, et utilise la RemoveAccessRule méthode pour supprimer cette nouvelle règle de l’objet RegistrySecurity . SetValue est un composant de ReadKey, il est donc supprimé de la règle compatible. Les règles de l’objet s’affichent RegistrySecurity , montrant les composants restants de ReadKey.

L’exemple de code appelle ensuite la AddAccessRule méthode pour fusionner le SetValue droit dans la règle dans l’objet RegistrySecurity .

Notes

Cet exemple n’attache pas l’objet de sécurité à un RegistryKey objet . Le deuxième exemple de cette section joint un objet de sécurité, de même que les exemples dans RegistryKey.GetAccessControl et RegistryKey.SetAccessControl.


using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Security;
using Microsoft.Win32;

public class Example
{

    public static void Main()
    {

        string user = Environment.UserDomainName + "\\"
            + Environment.UserName;

        // Create a security object that grants no access.
        RegistrySecurity mSec = new RegistrySecurity();

        // Add a rule that grants the current user ReadKey
        // rights. ReadKey is a combination of four other 
        // rights. The rule is inherited by all 
        // contained subkeys.
        RegistryAccessRule rule = new RegistryAccessRule(user, 
            RegistryRights.ReadKey, 
            InheritanceFlags.ContainerInherit, 
            PropagationFlags.None, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Create a rule that allows the current user only the 
        // right to query the key/value pairs of a key, using  
        // the same inheritance and propagation flags as the
        // first rule. QueryValues is a constituent of 
        // ReadKey, so when this rule is removed, using the 
        // RemoveAccessRule method, ReadKey is broken into
        // its constituent parts.
        rule = new RegistryAccessRule(user, 
            RegistryRights.QueryValues, 
            InheritanceFlags.ContainerInherit, 
            PropagationFlags.None, 
            AccessControlType.Allow);
        mSec.RemoveAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);

        // Add the second rule back. It merges with the 
        // existing rule, so that the rule is now displayed
        // as ReadKey.
        mSec.AddAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);
    }

    private static void ShowSecurity(RegistrySecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach( RegistryAccessRule ar in security.GetAccessRules(true, true, typeof(NTAccount)) )
        {
            Console.WriteLine("        User: {0}", ar.IdentityReference);
            Console.WriteLine("        Type: {0}", ar.AccessControlType);
            Console.WriteLine("      Rights: {0}", ar.RegistryRights);
            Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags);
            Console.WriteLine(" Propagation: {0}", ar.PropagationFlags);
            Console.WriteLine("   Inherited? {0}", ar.IsInherited);
            Console.WriteLine();
        }
    }
}

/* This code example produces output similar to following:

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: EnumerateSubKeys, Notify, ReadPermissions
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False


Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False
 */
Option Explicit
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.Security
Imports Microsoft.Win32

Public Class Example

    Public Shared Sub Main()

        Dim user As String = Environment.UserDomainName _ 
            & "\" & Environment.UserName

        ' Create a security object that grants no access.
        Dim mSec As New RegistrySecurity()

        ' Add a rule that grants the current user ReadKey
        ' rights. ReadKey is a combination of four other 
        ' rights. The rule is inherited by all 
        ' contained subkeys.
        Dim rule As New RegistryAccessRule(user, _
            RegistryRights.ReadKey, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.None, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Create a rule that allows the current user only the 
        ' right to query the key/value pairs of a key, using  
        ' the same inheritance and propagation flags as the
        ' first rule. QueryValues is a constituent of 
        ' ReadKey, so when this rule is removed, using the 
        ' RemoveAccessRule method, ReadKey is broken into
        ' its constituent parts.
        rule = New RegistryAccessRule(user, _
            RegistryRights.QueryValues, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.None, _
            AccessControlType.Allow)
        mSec.RemoveAccessRule(rule)

        ' Display the rules in the security object.
        ShowSecurity(mSec)

        ' Add the second rule back. It merges with the 
        ' existing rule, so that the rule is now displayed
        ' as ReadKey.
        mSec.AddAccessRule(rule)

        ' Display the rules in the security object.
        ShowSecurity(mSec)

    End Sub 

    Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity)
        Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)

        For Each ar As RegistryAccessRule In _
            security.GetAccessRules(True, True, GetType(NTAccount))

            Console.WriteLine("        User: {0}", ar.IdentityReference)
            Console.WriteLine("        Type: {0}", ar.AccessControlType)
            Console.WriteLine("      Rights: {0}", ar.RegistryRights)
            Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags)
            Console.WriteLine(" Propagation: {0}", ar.PropagationFlags)
            Console.WriteLine("   Inherited? {0}", ar.IsInherited)
            Console.WriteLine()
        Next

    End Sub
End Class 

'This code example produces output similar to following:
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: EnumerateSubKeys, Notify, ReadPermissions
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'

Exemple 2

L’exemple de code suivant illustre les règles d’accès avec héritage et propagation. L’exemple crée un RegistrySecurity objet, puis crée et ajoute deux règles qui ont l’indicateur ContainerInherit . La première règle n’a aucun indicateur de propagation, tandis que la seconde a NoPropagateInherit et InheritOnly.

Le programme affiche les règles dans l’objet RegistrySecurity , puis utilise l’objet RegistrySecurity pour créer une sous-clé. Le programme crée une sous-clé enfant et une sous-clé petit-enfant, puis affiche la sécurité de chaque sous-clé. Enfin, le programme supprime les clés de test.


using System;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Security;
using Microsoft.Win32;

public class Example
{
    public static void Main()
    {
        const string TestKey = "TestKey3927";
        RegistryKey cu = Registry.CurrentUser;

        string user = Environment.UserDomainName + 
            "\\" + Environment.UserName;

        // Create a security object that grants no access.
        RegistrySecurity mSec = new RegistrySecurity();

        // Add a rule that grants the current user the right
        // to read and enumerate the name/value pairs in a key, 
        // to read its access and audit rules, to enumerate
        // its subkeys, to create subkeys, and to delete the key. 
        // The rule is inherited by all contained subkeys.
        //
        RegistryAccessRule rule = new RegistryAccessRule(user, 
           RegistryRights.ReadKey | RegistryRights.WriteKey 
               | RegistryRights.Delete, 
           InheritanceFlags.ContainerInherit, 
           PropagationFlags.None, 
           AccessControlType.Allow
        );
        mSec.AddAccessRule(rule);

        // Add a rule that allows the current user the right
        // right to set the name/value pairs in a key. 
        // This rule is inherited by contained subkeys, but
        // propagation flags limit it to immediate child 
        // subkeys.
        rule = new RegistryAccessRule(user, 
            RegistryRights.ChangePermissions, 
            InheritanceFlags.ContainerInherit, 
            PropagationFlags.InheritOnly | 
                PropagationFlags.NoPropagateInherit, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);

        // Create the test key using the security object.
        //
        RegistryKey rk = cu.CreateSubKey(TestKey, 
            RegistryKeyPermissionCheck.ReadWriteSubTree, mSec);

        // Create a child subkey and a grandchild subkey, 
        // without security.
        RegistryKey rkChild = rk.CreateSubKey("ChildKey", 
            RegistryKeyPermissionCheck.ReadWriteSubTree);
        RegistryKey rkGrandChild = 
            rkChild.CreateSubKey("GrandChildKey", 
                RegistryKeyPermissionCheck.ReadWriteSubTree);

        Show(rk);
        Show(rkChild);
        Show(rkGrandChild);

        rkGrandChild.Close();
        rkChild.Close();
        rk.Close();

        cu.DeleteSubKeyTree(TestKey);
    }

    private static void Show(RegistryKey rk)
    {
        Console.WriteLine(rk.Name);
        ShowSecurity(rk.GetAccessControl());
    }

    private static void ShowSecurity(RegistrySecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach( RegistryAccessRule ar in security.GetAccessRules(true, true, typeof(NTAccount)) )
        {

            Console.WriteLine("        User: {0}", ar.IdentityReference);
            Console.WriteLine("        Type: {0}", ar.AccessControlType);
            Console.WriteLine("      Rights: {0}", ar.RegistryRights);
            Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags);
            Console.WriteLine(" Propagation: {0}", ar.PropagationFlags);
            Console.WriteLine("   Inherited? {0}", ar.IsInherited);
            Console.WriteLine();
        }
    }
}

/* This code example produces output similar to following:

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False

        User: TestDomain\TestUser
        Type: Allow
      Rights: ChangePermissions
 Inheritance: ContainerInherit
 Propagation: NoPropagateInherit, InheritOnly
   Inherited? False

HKEY_CURRENT_USER\TestKey3927

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? False

        User: TestDomain\TestUser
        Type: Allow
      Rights: ChangePermissions
 Inheritance: ContainerInherit
 Propagation: NoPropagateInherit, InheritOnly
   Inherited? False

HKEY_CURRENT_USER\TestKey3927\ChildKey

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? True

        User: TestDomain\TestUser
        Type: Allow
      Rights: ChangePermissions
 Inheritance: None
 Propagation: None
   Inherited? True

HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey

Current access rules:

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, Delete, ReadKey
 Inheritance: ContainerInherit
 Propagation: None
   Inherited? True
 */
Option Explicit
Imports System.Security.AccessControl
Imports System.Security.Principal
Imports System.Security
Imports Microsoft.Win32

Public Class Example

    Public Shared Sub Main()

        Const TestKey As String = "TestKey3927"
        Dim cu As RegistryKey = Registry.CurrentUser

        Dim user As String = Environment.UserDomainName _ 
            & "\" & Environment.UserName

        ' Create a security object that grants no access.
        Dim mSec As New RegistrySecurity()

        ' Add a rule that grants the current user the right
        ' to read and enumerate the name/value pairs in a key, 
        ' to read its access and audit rules, to enumerate
        ' its subkeys, to create subkeys, and to delete the key. 
        ' The rule is inherited by all contained subkeys.
        '
        Dim rule As New RegistryAccessRule(user, _
            RegistryRights.ReadKey Or RegistryRights.WriteKey _
                Or RegistryRights.Delete, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.None, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Add a rule that allows the current user the right
        ' right to set the name/value pairs in a key. 
        ' This rule is inherited by contained subkeys, but
        ' propagation flags limit it to immediate child 
        ' subkeys.
        rule = New RegistryAccessRule(user, _
            RegistryRights.ChangePermissions, _
            InheritanceFlags.ContainerInherit, _
            PropagationFlags.InheritOnly Or PropagationFlags.NoPropagateInherit, _
            AccessControlType.Allow)
        mSec.AddAccessRule(rule)

        ' Display the rules in the security object.
        ShowSecurity(mSec)

        ' Create the test key using the security object.
        '
        Dim rk As RegistryKey = cu.CreateSubKey(TestKey, _
            RegistryKeyPermissionCheck.ReadWriteSubTree, _
            mSec)

        ' Create a child subkey and a grandchild subkey, 
        ' without security.
        Dim rkChild As RegistryKey= rk.CreateSubKey("ChildKey", _
            RegistryKeyPermissionCheck.ReadWriteSubTree)
        Dim rkGrandChild As RegistryKey = _
            rkChild.CreateSubKey("GrandChildKey", _
                RegistryKeyPermissionCheck.ReadWriteSubTree)

        Show(rk)
        Show(rkChild)
        Show(rkGrandChild)

        rkGrandChild.Close()
        rkChild.Close()
        rk.Close()

        cu.DeleteSubKeyTree(TestKey)
    End Sub 

    Private Shared Sub Show(ByVal rk As RegistryKey)
        Console.WriteLine(rk.Name)            
        ShowSecurity(rk.GetAccessControl())
    End Sub

    Private Shared Sub ShowSecurity(ByVal security As RegistrySecurity)
        Console.WriteLine(vbCrLf & "Current access rules:" & vbCrLf)

        For Each ar As RegistryAccessRule In _
            security.GetAccessRules(True, True, GetType(NTAccount))

            Console.WriteLine("        User: {0}", ar.IdentityReference)
            Console.WriteLine("        Type: {0}", ar.AccessControlType)
            Console.WriteLine("      Rights: {0}", ar.RegistryRights)
            Console.WriteLine(" Inheritance: {0}", ar.InheritanceFlags)
            Console.WriteLine(" Propagation: {0}", ar.PropagationFlags)
            Console.WriteLine("   Inherited? {0}", ar.IsInherited)
            Console.WriteLine()
        Next

    End Sub
End Class 

'This code example produces output similar to following:
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ChangePermissions
' Inheritance: ContainerInherit
' Propagation: NoPropagateInherit, InheritOnly
'   Inherited? False
'
'HKEY_CURRENT_USER\TestKey3927
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? False
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ChangePermissions
' Inheritance: ContainerInherit
' Propagation: NoPropagateInherit, InheritOnly
'   Inherited? False
'
'HKEY_CURRENT_USER\TestKey3927\ChildKey
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? True
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: ChangePermissions
' Inheritance: None
' Propagation: None
'   Inherited? True
'
'HKEY_CURRENT_USER\TestKey3927\ChildKey\GrandChildKey
'
'Current access rules:
'
'        User: TestDomain\TestUser
'        Type: Allow
'      Rights: SetValue, CreateSubKey, Delete, ReadKey
' Inheritance: ContainerInherit
' Propagation: None
'   Inherited? True

Remarques

Un RegistrySecurity objet spécifie les droits d’accès pour une clé de Registre et spécifie également la façon dont les tentatives d’accès sont auditées. Les droits d’accès à la clé de Registre sont exprimés sous forme de règles, chaque règle d’accès étant représentée par un RegistryAccessRule objet . Chaque règle d’audit est représentée par un RegistryAuditRule objet .

Cela reflète le système de sécurité Windows sous-jacent, dans lequel chaque objet sécurisable a au plus une liste de contrôle d’accès discrétionnaire (DACL) qui contrôle l’accès à l’objet sécurisé, et au plus une liste de contrôle d’accès système (SACL) qui spécifie les tentatives d’accès auditées. Les listes DACL et SACL sont des listes ordonnées d’entrées de contrôle d’accès (ACE) qui spécifient l’accès et l’audit pour les utilisateurs et les groupes. Un RegistryAccessRule objet ou RegistryAuditRule peut représenter plusieurs ACE.

Notes

La sécurité du contrôle d’accès Windows ne peut être appliquée qu’aux clés de Registre. Il ne peut pas être appliqué à des paires clé/valeur individuelles stockées dans une clé.

Les RegistrySecurityclasses , RegistryAccessRuleet RegistryAuditRule masquent les détails d’implémentation des listes de contrôle d’accès et des ACL. Ils vous permettent d’ignorer les dix-sept types ACE différents et la complexité de la gestion correcte de l’héritage et de la propagation des droits d’accès. Ces objets sont également conçus pour éviter les erreurs courantes de contrôle d’accès suivantes :

  • Création d’un descripteur de sécurité avec un DACL Null. Une référence Null à une liste de contrôle d’accès permet à tout utilisateur d’ajouter des règles d’accès à un objet, ce qui peut entraîner une attaque par déni de service. Un nouvel RegistrySecurity objet commence toujours par une liste DACL vide, qui refuse tout accès à tous les utilisateurs.

  • Violation de l’ordre canonique des AE. Si la liste ACE dans la liste DACL n’est pas conservée dans l’ordre canonique, les utilisateurs peuvent avoir par inadvertance l’accès à l’objet sécurisé. Par exemple, les droits d’accès refusés doivent toujours apparaître avant les droits d’accès autorisés. RegistrySecurity les objets conservent l’ordre correct en interne.

  • Manipulation des indicateurs de descripteur de sécurité, qui doivent être sous contrôle resource manager uniquement.

  • Création de combinaisons non valides d’indicateurs ACE.

  • Manipulation des AE hérités. L’héritage et la propagation sont gérés par le gestionnaire de ressources, en réponse aux modifications que vous apportez aux règles d’accès et d’audit.

  • Insertion d’ACL sans signification dans des listes de contrôle d’accès.

Les seules fonctionnalités non prises en charge par les objets de sécurité .NET sont des activités dangereuses qui doivent être évitées par la majorité des développeurs d’applications, telles que les suivantes :

  • Tâches de bas niveau qui sont normalement effectuées par le gestionnaire de ressources.

  • Ajout ou suppression d’entrées de contrôle d’accès d’une manière qui ne conserve pas l’ordre canonique.

Pour modifier la sécurité du contrôle d’accès Windows pour une clé de Registre, utilisez la RegistryKey.GetAccessControl méthode pour obtenir l’objet RegistrySecurity . Modifiez l’objet de sécurité en ajoutant et en supprimant des règles, puis utilisez la RegistryKey.SetAccessControl méthode pour le rattacher.

Important

Les modifications que vous apportez à un RegistrySecurity objet n’affectent pas les niveaux d’accès de la clé de Registre tant que vous n’appelez pas la RegistryKey.SetAccessControl méthode pour affecter l’objet de sécurité modifié à la clé de Registre.

Pour copier la sécurité du contrôle d’accès d’une clé de Registre vers une autre, utilisez la RegistryKey.GetAccessControl méthode pour obtenir un RegistrySecurity objet représentant les règles d’accès et d’audit de la première clé de Registre, puis utilisez la RegistryKey.SetAccessControl méthode pour affecter ces règles à la deuxième clé de Registre. Vous pouvez également affecter les règles à une deuxième clé de Registre avec une RegistryKey.OpenSubKey méthode ou RegistryKey.CreateSubKey qui prend un RegistrySecurity paramètre d’objet.

Les utilisateurs ayant investi dans le langage de définition de descripteur de sécurité (SDDL) peuvent utiliser la SetSecurityDescriptorSddlForm méthode pour définir des règles d’accès pour une clé de Registre et la GetSecurityDescriptorSddlForm méthode pour obtenir une chaîne qui représente les règles d’accès au format SDDL. Cela n’est pas recommandé pour le nouveau développement.

Constructeurs

RegistrySecurity()

Initialise une nouvelle instance de la classe RegistrySecurity avec les valeurs par défaut.

Propriétés

AccessRightType

Obtient le type d'énumération utilisé par la classe RegistrySecurity pour représenter des droits d'accès.

AccessRulesModified

Obtient une valeur booléenne qui spécifie si les règles d’accès associées à cet objet ObjectSecurity ont été modifiées.

(Hérité de ObjectSecurity)
AccessRuleType

Obtient le type utilisé par la classe RegistrySecurity pour représenter des règles d'accès.

AreAccessRulesCanonical

Obtient une valeur booléenne qui spécifie si les règles d’accès associées à cet objet ObjectSecurity suivent un ordre canonique.

(Hérité de ObjectSecurity)
AreAccessRulesProtected

Obtient une valeur booléenne qui spécifie si la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet ObjectSecurity est protégée.

(Hérité de ObjectSecurity)
AreAuditRulesCanonical

Obtient une valeur booléenne qui spécifie si les règles d’audit associées à cet objet ObjectSecurity suivent un ordre canonique.

(Hérité de ObjectSecurity)
AreAuditRulesProtected

Obtient une valeur booléenne qui spécifie si la liste de contrôle d’accès système (SACL) associée à cet objet ObjectSecurity est protégée.

(Hérité de ObjectSecurity)
AuditRulesModified

Obtient ou définit une valeur booléenne qui spécifie si les règles d’audit associées à cet objet ObjectSecurity ont été modifiées.

(Hérité de ObjectSecurity)
AuditRuleType

Obtient le type utilisé par la classe RegistrySecurity pour représenter des règles d'audit.

GroupModified

Obtient ou définit une valeur booléenne qui spécifie si le groupe associé à l’objet sécurisable a été modifié.

(Hérité de ObjectSecurity)
IsContainer

Obtient une valeur booléenne qui spécifie si cet objet ObjectSecurity est un objet conteneur.

(Hérité de ObjectSecurity)
IsDS

Obtient une valeur booléenne qui spécifie si cet objet ObjectSecurity est un objet d’annuaire.

(Hérité de ObjectSecurity)
OwnerModified

Obtient ou définit une valeur booléenne qui spécifie si le propriétaire de l’objet sécurisable a été modifié.

(Hérité de ObjectSecurity)
SecurityDescriptor

Obtient le descripteur de sécurité pour cette instance.

(Hérité de ObjectSecurity)

Méthodes

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

Crée une règle de contrôle d'accès pour l'utilisateur spécifié, avec les droits d'accès, le contrôle d'accès et les indicateurs spécifiés.

AddAccessRule(AccessRule)

Ajoute la règle d'accès spécifiée à la liste de contrôle d'accès discrétionnaire associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
AddAccessRule(RegistryAccessRule)

Recherche une règle de contrôle d'accès correspondante avec laquelle la nouvelle règle peut être fusionnée. Ajoute la nouvelle règle en cas de recherche infructueuse.

AddAuditRule(AuditRule)

Ajoute la règle d'audit spécifiée à la liste de contrôle d'accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
AddAuditRule(RegistryAuditRule)

Recherche une règle d'audit avec laquelle la nouvelle règle peut être fusionnée. Ajoute la nouvelle règle en cas de recherche infructueuse.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

Crée une règle d'audit, en spécifiant l'utilisateur auquel elle s'applique, les droits d'accès à auditer, l'héritage et la propagation de la règle, ainsi que le résultat qui déclenche la règle.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetAccessRules(Boolean, Boolean, Type)

Obtient une collection des règles d'accès associées à l'identificateur de sécurité spécifié.

(Hérité de CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Obtient une collection des règles d'audit associées à l'identificateur de sécurité spécifié.

(Hérité de CommonObjectSecurity)
GetGroup(Type)

Obtient le groupe principal associé au propriétaire spécifié.

(Hérité de ObjectSecurity)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetOwner(Type)

Obtient le propriétaire associé au groupe principal spécifié.

(Hérité de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Retourne un tableau de valeurs d’octets qui représente les informations du descripteur de sécurité de cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Retourne la représentation SDDL (Security Descriptor Definition Language) des sections spécifiées du descripteur de sécurité associé à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès système (SACL) associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès système (SACL) associée à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet ObjectSecurity dans un stockage permanent. Nous vous recommandons de définir des valeurs identiques pour les paramètres includeSections passés aux méthodes Constructor et Persist.

(Hérité de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous vous recommandons de définir des valeurs identiques pour les paramètres includeSections passés aux méthodes constructor et persist.

(Hérité de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous vous recommandons de définir des valeurs identiques pour les paramètres includeSections passés aux méthodes Constructor et Persist.

(Hérité de NativeObjectSecurity)
Persist(String, AccessControlSections)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous vous recommandons de définir des valeurs identiques pour les paramètres includeSections passés aux méthodes Constructor et Persist.

(Hérité de NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous vous recommandons de définir des valeurs identiques pour les paramètres includeSections passés aux méthodes Constructor et Persist.

(Hérité de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Supprime toutes les règles d’accès associés au IdentityReference spécifié.

(Hérité de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Supprime toutes les règles d'audit associées au IdentityReference spécifié.

(Hérité de ObjectSecurity)
ReadLock()

Verrouille cet objet ObjectSecurity pour un accès en lecture.

(Hérité de ObjectSecurity)
ReadUnlock()

Verrouille cet objet ObjectSecurity pour un accès en lecture.

(Hérité de ObjectSecurity)
RemoveAccessRule(AccessRule)

Supprime les règles d'accès qui contiennent les mêmes identificateur de sécurité et masque d'accès que la règle d'accès spécifiée dans la liste de contrôle d'accès discrétionnaire associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAccessRule(RegistryAccessRule)

Recherche une règle de contrôle d'accès ayant les mêmes utilisateur et AccessControlType (autorisation ou refus) que la règle d'accès spécifiée et ayant des indicateurs d'héritage et de propagation compatibles ; si une telle règle est trouvée, les droits contenus dans la règle d'accès spécifiée en sont supprimés.

RemoveAccessRuleAll(AccessRule)

Supprime toutes les règles d'accès qui ont le même identificateur de sécurité que la règle d'accès spécifiée dans la liste de contrôle d'accès discrétionnaire associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAccessRuleAll(RegistryAccessRule)

Recherche toutes les règles de contrôle d'accès ayant les mêmes utilisateur et AccessControlType (autorisation ou refus) que la règle spécifiée et, s'il en existe, les supprime.

RemoveAccessRuleSpecific(AccessRule)

Supprime toutes les règles d'accès qui correspondent exactement à la règle d'accès spécifiée dans la liste de contrôle d'accès discrétionnaire associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAccessRuleSpecific(RegistryAccessRule)

Recherche une règle de contrôle d'accès qui correspond exactement à la règle spécifiée et, si une telle règle est trouvée, la supprime.

RemoveAuditRule(AuditRule)

Supprime les règles d'audit qui contiennent les mêmes identificateur de sécurité et masque d'accès que la règle d'audit spécifiée dans la liste de contrôle d'accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAuditRule(RegistryAuditRule)

Recherche une règle de contrôle d'audit ayant le même utilisateur que la règle spécifiée et ayant des indicateurs d'héritage et de propagation compatibles ; si une règle compatible est trouvée, les droits contenus dans la règle spécifiée en sont supprimés.

RemoveAuditRuleAll(AuditRule)

Supprime toutes les règles d'audit qui ont le même identificateur de sécurité que la règle d'audit spécifiée dans la liste de contrôle d'accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAuditRuleAll(RegistryAuditRule)

Recherche toutes les règles d'audit ayant le même utilisateur que la règle spécifiée et, s'il en existe, les supprime.

RemoveAuditRuleSpecific(AuditRule)

Supprime toutes les règles d'audit qui correspondent exactement à la règle d'audit spécifiée dans la liste de contrôle d'accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAuditRuleSpecific(RegistryAuditRule)

Recherche une règle d'audit qui correspond exactement à la règle spécifiée et, si une telle règle est trouvée, la supprime.

ResetAccessRule(AccessRule)

Supprime toutes les règles d'accès de la liste de contrôle d'accès discrétionnaire associée à cet objet CommonObjectSecurity, puis ajoute la règle d'accès spécifiée.

(Hérité de CommonObjectSecurity)
ResetAccessRule(RegistryAccessRule)

Supprime toutes les règles de contrôle d'accès ayant le même utilisateur que la règle spécifiée, indépendamment de AccessControlType, puis ajoute la règle spécifiée.

SetAccessRule(AccessRule)

Supprime toutes les règles d'accès qui contiennent les mêmes identificateur de sécurité et qualificateur que la règle d'accès spécifiée dans la liste de contrôle d'accès discrétionnaire associée à cet objet CommonObjectSecurity, puis ajoute la règle d'accès spécifiée.

(Hérité de CommonObjectSecurity)
SetAccessRule(RegistryAccessRule)

Supprime toutes les règles de contrôle d'accès ayant les mêmes utilisateur et AccessControlType (autorisation ou refus) que la règle spécifiée, puis ajoute la règle spécifiée.

SetAccessRuleProtection(Boolean, Boolean)

Définit ou supprime la protection des règles d’accès associées à cet objet ObjectSecurity. Les objets parents ne peuvent pas modifier des règles d’accès protégé par le biais de l’héritage.

(Hérité de ObjectSecurity)
SetAuditRule(AuditRule)

Supprime toutes les règles d'audit qui contiennent les mêmes identificateur de sécurité et qualificateur que la règle d'audit spécifiée dans la liste de contrôle d'accès système associée à cet objet CommonObjectSecurity, puis ajoute la règle d'audit spécifiée.

(Hérité de CommonObjectSecurity)
SetAuditRule(RegistryAuditRule)

Supprime toutes les règles d'audit ayant le même utilisateur que la règle spécifiée, quelle que soit la valeur de AuditFlags, puis ajoute la règle spécifiée.

SetAuditRuleProtection(Boolean, Boolean)

Définit ou supprime la protection des règles d’audit associées à cet objet ObjectSecurity. Les objets parents ne peuvent pas modifier les règles d’audit protégées par le biais de l’héritage.

(Hérité de ObjectSecurity)
SetGroup(IdentityReference)

Définit le groupe principal du descripteur de sécurité associé à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
SetOwner(IdentityReference)

Définit le propriétaire du descripteur de sécurité associé à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Définit le descripteur de sécurité de cet objet ObjectSecurity à partir du tableau de valeurs, spécifiées en octets.

(Hérité de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Définit les sections spécifiées du descripteur de sécurité pour cet objet ObjectSecurity du tableau de valeurs d’octets spécifié.

(Hérité de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Définit le descripteur de sécurité de cet objet ObjectSecurity de la chaîne SDDL (Security Descriptor Definition Language) spécifiée.

(Hérité de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Définit les sections spécifiées du descripteur de sécurité de cet objet ObjectSecurity de la chaîne SDDL (Security Descriptor Definition Language) spécifiée.

(Hérité de ObjectSecurity)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
WriteLock()

Déverrouille cet objet ObjectSecurity pour un accès en écriture.

(Hérité de ObjectSecurity)
WriteUnlock()

Déverrouille cet objet ObjectSecurity pour un accès en écriture.

(Hérité de ObjectSecurity)

S’applique à