RegistrySecurity Klasa

Definicja

Reprezentuje Windows zabezpieczenia kontroli dostępu dla klucza rejestru. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
Atrybuty

Przykłady

Ten rozdział zawiera dwa przykłady kodu. W pierwszym przykładzie pokazano, jak zgodne reguły scalają się po dodaniu i usunięciu, a drugi pokazuje, jak flagi dziedziczenia i propagacji wpływają na dodawanie i usuwanie reguł.

Przykład 1

Poniższy przykład kodu pokazuje, jak RemoveAccessRule metoda usuwa prawa z zgodnej reguły i jak AddAccessRule metoda scala prawa z zgodnymi regułami.

Przykład tworzy obiekt i dodaje regułę RegistrySecurity , która zezwala na bieżące prawa użytkownika RegistryRights.ReadKey . W tym przykładzie zostanie utworzona reguła, która przyznaje użytkownikowi RegistryRights.SetValue, z tymi samymi prawami dziedziczenia i propagacji co pierwsza reguła, i używa RemoveAccessRule metody , aby usunąć tę nową regułę z RegistrySecurity obiektu. SetValue jest składnikiem elementu ReadKey, więc jest usuwany z zgodnej reguły. Zostaną wyświetlone reguły w RegistrySecurity obiekcie z pozostałymi składnikami elementu ReadKey.

Przykładowy kod wywołuje następnie metodę AddAccessRule , aby scalić prawą SetValue kopię z powrotem do reguły w RegistrySecurity obiekcie.

Uwaga

W tym przykładzie obiekt zabezpieczeń nie jest dołączany do RegistryKey obiektu. Drugi przykład w tej sekcji dołącza obiekt zabezpieczeń, a więc wykonaj przykłady w RegistryKey.GetAccessControl elementach i 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
'

Przykład 2

Poniższy przykład kodu przedstawia reguły dostępu z dziedziczeniem i propagacją. Przykład tworzy RegistrySecurity obiekt, a następnie tworzy i dodaje dwie reguły, które mają flagę ContainerInherit . Pierwsza reguła nie ma flag propagacji, a druga ma NoPropagateInherit wartość i InheritOnly.

Program wyświetla reguły w RegistrySecurity obiekcie, a następnie używa RegistrySecurity obiektu do utworzenia podklucza. Program tworzy podrzędny podklucz i podklucz wnuka, a następnie wyświetla zabezpieczenia dla każdego podklucza. Na koniec program usuwa klucze testowe.


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

Uwagi

Obiekt RegistrySecurity określa prawa dostępu dla klucza rejestru, a także określa sposób inspekcji prób dostępu. Prawa dostępu do klucza rejestru są wyrażane jako reguły, a każda reguła dostępu reprezentowana RegistryAccessRule przez obiekt. Każda reguła inspekcji jest reprezentowana przez RegistryAuditRule obiekt.

Odzwierciedla to podstawowy system zabezpieczeń Windows, w którym każdy zabezpieczany obiekt ma co najwyżej jedną uznaniową listę kontroli dostępu (DACL), która kontroluje dostęp do zabezpieczonego obiektu, a co najwyżej jedna lista kontroli dostępu systemu (SACL), która określa, które próby dostępu są poddawane inspekcji. Listy DACL i SACL są uporządkowanymi listami wpisów kontroli dostępu (ACE), które określają dostęp i inspekcję dla użytkowników i grup. Obiekt RegistryAccessRule lub RegistryAuditRule może reprezentować więcej niż jedną ACE.

Uwaga

Windows zabezpieczenia kontroli dostępu można stosować tylko do kluczy rejestru. Nie można go zastosować do poszczególnych par klucz/wartość przechowywanych w kluczu.

Klasy RegistrySecurity, RegistryAccessRulei RegistryAuditRule ukrywają szczegóły implementacji list ACL i ACL. Umożliwiają one ignorowanie siedemnastu różnych typów ACE oraz złożoność prawidłowego utrzymania dziedziczenia i propagacji praw dostępu. Te obiekty zostały również zaprojektowane tak, aby zapobiec następującym typowym błędom kontroli dostępu:

  • Tworzenie deskryptora zabezpieczeń z null listą DACL. Odwołanie o wartości null do listy DACL umożliwia każdemu użytkownikowi dodawanie reguł dostępu do obiektu, co może potencjalnie spowodować atak typu "odmowa usługi". Nowy RegistrySecurity obiekt zawsze rozpoczyna się od pustej listy DACL, która uniemożliwia wszystkim użytkownikom dostęp.

  • Naruszenie kanonicznego porządku ACE. Jeśli lista ACE w liście DACL nie jest przechowywana w porządku kanonicznym, użytkownicy mogą przypadkowo uzyskać dostęp do zabezpieczonego obiektu. Na przykład odmowa praw dostępu musi zawsze być wyświetlana przed dozwolonymi prawami dostępu. RegistrySecurity obiekty zachowują poprawną kolejność wewnętrznie.

  • Manipulowanie flagami deskryptora zabezpieczeń, które powinny być objęte tylko kontrolą menedżera zasobów.

  • Tworzenie nieprawidłowych kombinacji flag ACE.

  • Manipulowanie dziedziczyłymi acEs. Dziedziczenie i propagacja są obsługiwane przez menedżera zasobów w odpowiedzi na zmiany wprowadzone w regułach dostępu i inspekcji.

  • Wstawianie bezsensownych ACL do list ACL.

Jedynymi możliwościami, które nie są obsługiwane przez obiekty zabezpieczeń platformy .NET, są niebezpieczne działania, których należy unikać przez większość deweloperów aplikacji, takich jak:

  • Zadania niskiego poziomu, które są zwykle wykonywane przez menedżera zasobów.

  • Dodawanie lub usuwanie wpisów kontroli dostępu w sposób, który nie zachowuje porządku kanonicznego.

Aby zmodyfikować Windows zabezpieczenia kontroli dostępu dla klucza rejestru, użyj RegistryKey.GetAccessControl metody , aby pobrać RegistrySecurity obiekt. Zmodyfikuj obiekt zabezpieczeń, dodając i usuwając reguły, a następnie użyj RegistryKey.SetAccessControl metody , aby ją ponownie dołączyć.

Ważne

Zmiany wprowadzone w RegistrySecurity obiekcie nie wpływają na poziomy dostępu klucza rejestru do momentu wywołania RegistryKey.SetAccessControl metody w celu przypisania zmienionego obiektu zabezpieczeń do klucza rejestru.

Aby skopiować zabezpieczenia kontroli dostępu z jednego klucza rejestru do innego, użyj RegistryKey.GetAccessControl metody , aby uzyskać RegistrySecurity obiekt reprezentujący reguły dostępu i inspekcji dla pierwszego klucza rejestru, a następnie użyć RegistryKey.SetAccessControl metody , aby przypisać te reguły do drugiego klucza rejestru. Reguły można również przypisać do drugiego klucza rejestru za pomocą RegistryKey.OpenSubKey metody lub RegistryKey.CreateSubKey , która przyjmuje RegistrySecurity parametr obiektu.

Użytkownicy z inwestycją w język definicji deskryptora zabezpieczeń (SDDL) mogą użyć SetSecurityDescriptorSddlForm metody ustawiania reguł dostępu dla klucza rejestru, a GetSecurityDescriptorSddlForm metoda uzyskiwania ciągu reprezentującego reguły dostępu w formacie SDDL. Nie jest to zalecane w przypadku nowego programowania.

Konstruktory

RegistrySecurity()

Inicjuje nowe wystąpienie klasy RegistrySecurity z domyślnymi wartościami.

Właściwości

AccessRightType

Pobiera typ wyliczania używany RegistrySecurity przez klasę do reprezentowania praw dostępu.

AccessRulesModified

Pobiera lub ustawia wartość logiczną określającą, czy reguły dostępu skojarzone z tym ObjectSecurity obiektem zostały zmodyfikowane.

(Odziedziczone po ObjectSecurity)
AccessRuleType

Pobiera typ używany przez RegistrySecurity klasę do reprezentowania reguł dostępu.

AreAccessRulesCanonical

Pobiera wartość logiczną określającą, czy reguły dostępu skojarzone z tym ObjectSecurity obiektem są w porządku kanonicznym.

(Odziedziczone po ObjectSecurity)
AreAccessRulesProtected

Pobiera wartość logiczną określającą, czy lista Access Control uznaniowa (DACL) skojarzona z tym ObjectSecurity obiektem jest chroniona.

(Odziedziczone po ObjectSecurity)
AreAuditRulesCanonical

Pobiera wartość logiczną określającą, czy reguły inspekcji skojarzone z tym ObjectSecurity obiektem są w porządku kanonicznym.

(Odziedziczone po ObjectSecurity)
AreAuditRulesProtected

Pobiera wartość logiczną określającą, czy lista Access Control systemowa (SACL) skojarzona z tym ObjectSecurity obiektem jest chroniona.

(Odziedziczone po ObjectSecurity)
AuditRulesModified

Pobiera lub ustawia wartość logiczną określającą, czy reguły inspekcji skojarzone z tym ObjectSecurity obiektem zostały zmodyfikowane.

(Odziedziczone po ObjectSecurity)
AuditRuleType

Pobiera typ używany przez RegistrySecurity klasę do reprezentowania reguł inspekcji.

GroupModified

Pobiera lub ustawia wartość logiczną określającą, czy grupa skojarzona z zabezpieczanym obiektem została zmodyfikowana.

(Odziedziczone po ObjectSecurity)
IsContainer

Pobiera wartość logiczną określającą, czy ten ObjectSecurity obiekt jest obiektem kontenera.

(Odziedziczone po ObjectSecurity)
IsDS

Pobiera wartość logiczną określającą, czy ten ObjectSecurity obiekt jest obiektem katalogu.

(Odziedziczone po ObjectSecurity)
OwnerModified

Pobiera lub ustawia wartość logiczną określającą, czy właściciel zabezpieczanego obiektu został zmodyfikowany.

(Odziedziczone po ObjectSecurity)
SecurityDescriptor

Pobiera deskryptor zabezpieczeń dla tego wystąpienia.

(Odziedziczone po ObjectSecurity)

Metody

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

Tworzy nową regułę kontroli dostępu dla określonego użytkownika z określonymi prawami dostępu, kontrolą dostępu i flagami.

AddAccessRule(AccessRule)

Dodaje określoną regułę dostępu do listy Access Control uznaniowej (DACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
AddAccessRule(RegistryAccessRule)

Wyszukuje pasującą kontrolę dostępu, za pomocą której można scalić nową regułę. Jeśli żadna z nich nie zostanie znaleziona, doda nową regułę.

AddAuditRule(AuditRule)

Dodaje określoną regułę inspekcji do listy systemu Access Control (SACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
AddAuditRule(RegistryAuditRule)

Wyszukuje regułę inspekcji, z którą można scalić nową regułę. Jeśli żadna z nich nie zostanie znaleziona, doda nową regułę.

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

Tworzy nową regułę inspekcji, określając użytkownika, do której ma zastosowanie reguła, prawa dostępu do inspekcji, dziedziczenie i propagację reguły oraz wynik wyzwalający regułę.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetAccessRules(Boolean, Boolean, Type)

Pobiera kolekcję reguł dostępu skojarzonych z określonym identyfikatorem zabezpieczeń.

(Odziedziczone po CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Pobiera kolekcję reguł inspekcji skojarzonych z określonym identyfikatorem zabezpieczeń.

(Odziedziczone po CommonObjectSecurity)
GetGroup(Type)

Pobiera grupę podstawową skojarzona z określonym właścicielem.

(Odziedziczone po ObjectSecurity)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetOwner(Type)

Pobiera właściciela skojarzonego z określoną grupą podstawową.

(Odziedziczone po ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Zwraca tablicę wartości bajtów, która reprezentuje informacje deskryptora zabezpieczeń dla tego ObjectSecurity obiektu.

(Odziedziczone po ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Zwraca reprezentację języka SDDL (Security Descriptor Definition Language) określonego fragmentu deskryptora zabezpieczeń skojarzonego z tym ObjectSecurity obiektem.

(Odziedziczone po ObjectSecurity)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Stosuje określoną modyfikację do listy Access Control uznaniowej (DACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Stosuje określoną modyfikację do listy Access Control uznaniowej (DACL) skojarzonej z tym ObjectSecurity obiektem.

(Odziedziczone po ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Stosuje określoną modyfikację do listy Access Control systemowych (SACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Stosuje określoną modyfikację do listy Access Control systemowych (SACL) skojarzonej z tym ObjectSecurity obiektem.

(Odziedziczone po ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym ObjectSecurity obiektem w magazynie trwałym. Zalecamy, aby wartości parametrów przekazanych includeSections do konstruktora i metod utrwalone zostały identyczne.

(Odziedziczone po ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym NativeObjectSecurity obiektem w magazynie trwałym. Zalecamy zachowanie wartości parametrów przekazywanych includeSections do konstruktora i utrwalania metod.

(Odziedziczone po NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym NativeObjectSecurity obiektem w magazynie trwałym. Zalecamy, aby wartości parametrów przekazanych includeSections do konstruktora i metod utrwalone zostały identyczne.

(Odziedziczone po NativeObjectSecurity)
Persist(String, AccessControlSections)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym NativeObjectSecurity obiektem w magazynie trwałym. Zalecamy, aby wartości parametrów przekazanych includeSections do konstruktora i metod utrwalone zostały identyczne.

(Odziedziczone po NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Zapisuje określone sekcje deskryptora zabezpieczeń skojarzonego z tym NativeObjectSecurity obiektem w magazynie trwałym. Zalecamy, aby wartości parametrów przekazanych includeSections do konstruktora i metod utrwalone zostały identyczne.

(Odziedziczone po NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Usuwa wszystkie reguły dostępu skojarzone z określonym IdentityReferenceelementem .

(Odziedziczone po ObjectSecurity)
PurgeAuditRules(IdentityReference)

Usuwa wszystkie reguły inspekcji skojarzone z określonym IdentityReference.

(Odziedziczone po ObjectSecurity)
ReadLock()

Blokuje ten ObjectSecurity obiekt w celu uzyskania dostępu do odczytu.

(Odziedziczone po ObjectSecurity)
ReadUnlock()

Odblokowuje ten ObjectSecurity obiekt w celu uzyskania dostępu do odczytu.

(Odziedziczone po ObjectSecurity)
RemoveAccessRule(AccessRule)

Usuwa reguły dostępu zawierające ten sam identyfikator zabezpieczeń i maskę dostępu co określona reguła dostępu z listy daCL (Discretionary Access Control List) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
RemoveAccessRule(RegistryAccessRule)

Wyszukuje regułę kontroli dostępu z tym samym użytkownikiem i AccessControlType (zezwalaj lub odrzucaj) jako określoną regułę dostępu oraz z zgodnymi flagami dziedziczenia i propagacji. Jeśli taka reguła zostanie znaleziona, prawa zawarte w określonej regule dostępu zostaną usunięte z niej.

RemoveAccessRuleAll(AccessRule)

Usuwa wszystkie reguły dostępu, które mają ten sam identyfikator zabezpieczeń co określona reguła dostępu z listy Access Control uznaniowej (DACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
RemoveAccessRuleAll(RegistryAccessRule)

Wyszukuje wszystkie reguły kontroli dostępu z tym samym użytkownikiem i AccessControlType (zezwalaj lub odrzucają) jako określoną regułę i, jeśli zostanie znaleziona, usunie je.

RemoveAccessRuleSpecific(AccessRule)

Usuwa wszystkie reguły dostępu, które dokładnie pasują do określonej reguły dostępu z listy Access Control uznaniowej (DACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
RemoveAccessRuleSpecific(RegistryAccessRule)

Wyszukuje regułę kontroli dostępu zgodną dokładnie z określoną regułą i, jeśli zostanie znaleziona, usunie ją.

RemoveAuditRule(AuditRule)

Usuwa reguły inspekcji zawierające ten sam identyfikator zabezpieczeń i maskę dostępu co określona reguła inspekcji z listy system Access Control (SACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
RemoveAuditRule(RegistryAuditRule)

Wyszukuje regułę kontroli inspekcji z tym samym użytkownikiem co określona reguła oraz z zgodnymi flagami dziedziczenia i propagacji; jeśli zostanie znaleziona zgodna reguła, prawa zawarte w określonej regule zostaną usunięte z niej.

RemoveAuditRuleAll(AuditRule)

Usuwa wszystkie reguły inspekcji, które mają ten sam identyfikator zabezpieczeń co określona reguła inspekcji z listy system Access Control (SACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
RemoveAuditRuleAll(RegistryAuditRule)

Wyszukuje wszystkie reguły inspekcji z tym samym użytkownikiem co określona reguła i, jeśli zostanie znaleziona, usunie je.

RemoveAuditRuleSpecific(AuditRule)

Usuwa wszystkie reguły inspekcji, które dokładnie pasują do określonej reguły inspekcji z listy system Access Control (SACL) skojarzonej z tym CommonObjectSecurity obiektem.

(Odziedziczone po CommonObjectSecurity)
RemoveAuditRuleSpecific(RegistryAuditRule)

Wyszukuje regułę inspekcji, która dokładnie pasuje do określonej reguły i, jeśli zostanie znaleziona, usunie ją.

ResetAccessRule(AccessRule)

Usuwa wszystkie reguły dostępu z listy Access Control uznaniowych skojarzonych z tym CommonObjectSecurity obiektem, a następnie dodaje określoną regułę dostępu.

(Odziedziczone po CommonObjectSecurity)
ResetAccessRule(RegistryAccessRule)

Usuwa wszystkie reguły kontroli dostępu z tym samym użytkownikiem co określona reguła, niezależnie od AccessControlType, a następnie dodaje określoną regułę.

SetAccessRule(AccessRule)

Usuwa wszystkie reguły dostępu, które zawierają ten sam identyfikator zabezpieczeń i kwalifikator co określona reguła dostępu w listy Access Control uznaniowej (DACL) skojarzonej z tym CommonObjectSecurity obiektem, a następnie dodaje określoną regułę dostępu.

(Odziedziczone po CommonObjectSecurity)
SetAccessRule(RegistryAccessRule)

Usuwa wszystkie reguły kontroli dostępu z tym samym użytkownikiem i AccessControlType (zezwalanie lub odrzucanie) co określona reguła, a następnie dodaje określoną regułę.

SetAccessRuleProtection(Boolean, Boolean)

Ustawia lub usuwa ochronę reguł dostępu skojarzonych z tym ObjectSecurity obiektem. Chronione reguły dostępu nie mogą być modyfikowane przez obiekty nadrzędne za pomocą dziedziczenia.

(Odziedziczone po ObjectSecurity)
SetAuditRule(AuditRule)

Usuwa wszystkie reguły inspekcji, które zawierają ten sam identyfikator zabezpieczeń i kwalifikator co określona reguła inspekcji w liście system Access Control (SACL) skojarzonej z tym CommonObjectSecurity obiektem, a następnie dodaje określoną regułę inspekcji.

(Odziedziczone po CommonObjectSecurity)
SetAuditRule(RegistryAuditRule)

Usuwa wszystkie reguły inspekcji z tym samym użytkownikiem co określona reguła, niezależnie od AuditFlags wartości, a następnie dodaje określoną regułę.

SetAuditRuleProtection(Boolean, Boolean)

Ustawia lub usuwa ochronę reguł inspekcji skojarzonych z tym ObjectSecurity obiektem. Chronione reguły inspekcji nie mogą być modyfikowane przez obiekty nadrzędne za pomocą dziedziczenia.

(Odziedziczone po ObjectSecurity)
SetGroup(IdentityReference)

Ustawia grupę podstawową deskryptora zabezpieczeń skojarzonego z tym ObjectSecurity obiektem.

(Odziedziczone po ObjectSecurity)
SetOwner(IdentityReference)

Ustawia właściciela deskryptora zabezpieczeń skojarzonego z tym ObjectSecurity obiektem.

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Ustawia deskryptor zabezpieczeń dla tego ObjectSecurity obiektu z określonej tablicy wartości bajtów.

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Ustawia określone sekcje deskryptora zabezpieczeń dla tego ObjectSecurity obiektu z określonej tablicy wartości bajtów.

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Ustawia deskryptor zabezpieczeń dla tego ObjectSecurity obiektu z określonego ciągu Security Descriptor Definition Language (SDDL).

(Odziedziczone po ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Ustawia określone sekcje deskryptora zabezpieczeń dla tego ObjectSecurity obiektu z określonego ciągu Języka definicji deskryptora zabezpieczeń (SDDL).

(Odziedziczone po ObjectSecurity)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
WriteLock()

Blokuje ten ObjectSecurity obiekt w celu uzyskania dostępu do zapisu.

(Odziedziczone po ObjectSecurity)
WriteUnlock()

Odblokowuje ten ObjectSecurity obiekt w celu uzyskania dostępu do zapisu.

(Odziedziczone po ObjectSecurity)

Dotyczy