Share via


RegistrySecurity Třída

Definice

Představuje zabezpečení řízení přístupu systému Windows pro klíč registru. Tato třída se nemůže dědit.

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
Dědičnost
Atributy

Příklady

Tato část obsahuje dva příklady kódu. První příklad ukazuje, jak kompatibilní pravidla slučují při přidání a odebrání, a druhý ukazuje, jak příznaky dědičnosti a šíření ovlivňují přidávání a odstraňování pravidel.

Příklad 1

Následující příklad kódu ukazuje, jak RemoveAccessRule metoda odebere práva z kompatibilního pravidla a jak AddAccessRule metoda slučuje práva s kompatibilními pravidly.

Příklad vytvoří RegistrySecurity objekt a přidá pravidlo, které povoluje aktuální uživatelská RegistryRights.ReadKey práva. Příklad pak vytvoří pravidlo, které uživateli RegistryRights.SetValueudělí stejná práva dědičnosti a šíření jako první pravidlo a použije metodu RemoveAccessRule k odebrání tohoto nového pravidla z objektu RegistrySecurity . SetValue je součástí souboru ReadKey, takže se odebere z kompatibilního pravidla. Zobrazí se pravidla v objektu RegistrySecurity se zbývajícími součástmi objektu ReadKey.

Ukázkový kód pak zavolá metodu AddAccessRule pro sloučení SetValue doprava zpět do pravidla v objektu RegistrySecurity .

Poznámka

Tento příklad nepřipoutuje objekt zabezpečení k objektu RegistryKey . Druhý příklad v této části připojí objekt zabezpečení, stejně jako příklady v RegistryKey.GetAccessControl a 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
'

Příklad 2

Následující příklad kódu ukazuje pravidla přístupu s dědičností a šířením. Příklad vytvoří RegistrySecurity objekt, pak vytvoří a přidá dvě pravidla, která mají ContainerInherit příznak. První pravidlo nemá žádné příznaky šíření, zatímco druhé má NoPropagateInherit a InheritOnly.

Program zobrazí pravidla v objektu RegistrySecurity a pak použije RegistrySecurity objekt k vytvoření podklíče. Program vytvoří podřízený podklíč a podklíč vnoučata a pak zobrazí zabezpečení pro každý podklíč. Nakonec program odstraní testovací klíče.


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

Poznámky

Objekt RegistrySecurity určuje přístupová práva ke klíči registru a také určuje, jak se auditují pokusy o přístup. Přístupová práva ke klíči registru se vyjadřují jako pravidla, přičemž každé pravidlo přístupu představuje RegistryAccessRule objekt. Každé pravidlo auditování je reprezentováno objektem RegistryAuditRule .

To odráží základní systém zabezpečení Windows, ve kterém každý zabezpečitelný objekt má maximálně jeden volitelný seznam řízení přístupu (DACL), který řídí přístup k zabezpečenému objektu, a maximálně jeden seznam řízení přístupu systému (SACL), který určuje, které pokusy o přístup se auditují. Seznamy DACL a SACL jsou seřazené seznamy položek řízení přístupu (ACE), které určují přístup a auditování pro uživatele a skupiny. Objekt RegistryAccessRule nebo RegistryAuditRule může představovat více než jeden objekt ACE.

Poznámka

Zabezpečení řízení přístupu systému Windows je možné použít pouze pro klíče registru. Nelze ho použít pro jednotlivé páry klíč/hodnota uložené v klíči.

Třídy RegistrySecurity, RegistryAccessRulea RegistryAuditRule skryjí podrobnosti implementace seznamů ACL a ACE. Umožňují ignorovat sedmnáct různých typů ACE a složitost správného udržování dědičnosti a šíření přístupových práv. Tyto objekty jsou také navrženy tak, aby zabránily následujícím běžným chybám řízení přístupu:

  • Vytvoření popisovače zabezpečení pomocí seznamu DACL s hodnotou null Odkaz na seznam DACL s hodnotou null umožňuje každému uživateli přidat pravidla přístupu k objektu, což může způsobit útok na odepření služby. Nový RegistrySecurity objekt vždy začíná prázdným seznamem DACL, který všem uživatelům odepře veškerý přístup.

  • Porušení kanonického pořadí ACE. Pokud seznam ACE v seznamu DACL není v kanonickém pořadí, může být uživatelům neúmyslně udělen přístup k zabezpečenému objektu. Například před povolenými přístupová práva se musí vždy zobrazit odepřená přístupová práva. RegistrySecurity objekty interně udržují správné pořadí.

  • Manipulace s příznaky popisovače zabezpečení, které by měly být pouze pod kontrolou Správce prostředků.

  • Vytváření neplatných kombinací příznaků ACE

  • Manipulace se zděděnými ACE. Dědičnost a šíření zpracovává správce prostředků v reakci na změny, které provedete v pravidlech přístupu a auditu.

  • Vkládání nesmyslných ACE do seznamů ACL

Jediné možnosti, které objekty zabezpečení .NET nepodporují, jsou nebezpečné aktivity, kterým by se měla většina vývojářů aplikací vyhnout, například následující:

  • Úlohy nízké úrovně, které obvykle provádí správce prostředků.

  • Přidávání nebo odebírání položek řízení přístupu způsobem, který nezachovává kanonické pořadí.

Chcete-li upravit zabezpečení řízení přístupu systému Windows pro klíč registru, použijte metodu RegistryKey.GetAccessControl k získání objektu RegistrySecurity . Upravte objekt zabezpečení přidáním a odebráním pravidel a pak ho RegistryKey.SetAccessControl znovu připojte pomocí metody .

Důležité

Změny provedené v objektu RegistrySecurity nemají vliv na úrovně přístupu klíče registru, dokud nezavoláte metodu RegistryKey.SetAccessControl pro přiřazení změněného objektu zabezpečení ke klíči registru.

Pokud chcete zkopírovat zabezpečení řízení přístupu z jednoho klíče registru do jiného, použijte metodu RegistryKey.GetAccessControl k získání objektu RegistrySecurity představujícího pravidla přístupu a auditu pro první klíč registru a pak pomocí RegistryKey.SetAccessControl metody přiřaďte tato pravidla druhému klíči registru. Můžete také přiřadit pravidla druhému klíči registru pomocí RegistryKey.OpenSubKey metody nebo RegistryKey.CreateSubKey , která přebírá parametr objektu RegistrySecurity .

Uživatelé s investicemi do jazyka SDDL (Security Descriptor Definition Language) můžou použít metodu SetSecurityDescriptorSddlForm k nastavení přístupových pravidel pro klíč registru a metodu GetSecurityDescriptorSddlForm pro získání řetězce, který představuje pravidla přístupu ve formátu SDDL. To se nedoporučuje pro nový vývoj.

Konstruktory

RegistrySecurity()

Inicializuje novou instanci třídy RegistrySecurity s výchozími hodnotami.

Vlastnosti

AccessRightType

Získá typ výčtu RegistrySecurity , který třída používá k reprezentaci přístupových práv.

AccessRulesModified

Získá nebo nastaví logickou hodnotu, která určuje, zda byla změněna pravidla přístupu přidružená k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
AccessRuleType

Získá typ, který RegistrySecurity třída používá k reprezentaci pravidel přístupu.

AreAccessRulesCanonical

Získá logickou hodnotu, která určuje, zda pravidla přístupu přidružená k tomuto ObjectSecurity objektu jsou v kanonickém pořadí.

(Zděděno od ObjectSecurity)
AreAccessRulesProtected

Získá Boolean hodnotu, která určuje, zda volitelné Access Control Seznam (DACL) přidružené k tomuto ObjectSecurity objektu je chráněna.

(Zděděno od ObjectSecurity)
AreAuditRulesCanonical

Získá logická hodnota, která určuje, zda pravidla auditu přidružené k tomuto ObjectSecurity objektu jsou v kanonickém pořadí.

(Zděděno od ObjectSecurity)
AreAuditRulesProtected

Získá boolean hodnotu, která určuje, zda system Access Control List (SACL) přidružené k tomuto ObjectSecurity objektu je chráněna.

(Zděděno od ObjectSecurity)
AuditRulesModified

Získá nebo nastaví logickou hodnotu, která určuje, zda byla upravena pravidla auditu přidružená k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
AuditRuleType

Získá typ, který RegistrySecurity třída používá k reprezentaci pravidel auditu.

GroupModified

Získá nebo nastaví logickou hodnotu, která určuje, zda byla změněna skupina přidružená k zabezpečitelnému objektu.

(Zděděno od ObjectSecurity)
IsContainer

Získá boolean hodnotu, která určuje, zda je objekt ObjectSecurity kontejneru.

(Zděděno od ObjectSecurity)
IsDS

Získá boolean hodnotu, která určuje, zda je tento ObjectSecurity objekt objekt adresáře.

(Zděděno od ObjectSecurity)
OwnerModified

Získá nebo nastaví logickou hodnotu, která určuje, zda byl upraven vlastník zabezpečitelný objekt.

(Zděděno od ObjectSecurity)
SecurityDescriptor

Získá popisovač zabezpečení pro tuto instanci.

(Zděděno od ObjectSecurity)

Metody

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

Vytvoří nové pravidlo řízení přístupu pro zadaného uživatele se zadanými přístupovými právy, řízením přístupu a příznaky.

AddAccessRule(AccessRule)

Přidá zadané pravidlo přístupu do volitelného seznamu Access Control (DACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
AddAccessRule(RegistryAccessRule)

Vyhledá odpovídající řízení přístupu, se kterým je možné nové pravidlo sloučit. Pokud se žádné nenajde, přidá nové pravidlo.

AddAuditRule(AuditRule)

Přidá zadané pravidlo auditu do seznamu system Access Control (SACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
AddAuditRule(RegistryAuditRule)

Vyhledá pravidlo auditu, se kterým je možné nové pravidlo sloučit. Pokud se žádné nenajde, přidá nové pravidlo.

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

Vytvoří nové pravidlo auditu, které určí uživatele, na kterého se pravidlo vztahuje, přístupová práva k auditování, dědičnost a šíření pravidla a výsledek, který pravidlo aktivuje.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetAccessRules(Boolean, Boolean, Type)

Získá kolekci pravidel přístupu přidružených k zadanému identifikátoru zabezpečení.

(Zděděno od CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Získá kolekci pravidel auditu přidružených k zadanému identifikátoru zabezpečení.

(Zděděno od CommonObjectSecurity)
GetGroup(Type)

Získá primární skupinu přidruženou k zadanému vlastníkovi.

(Zděděno od ObjectSecurity)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetOwner(Type)

Získá vlastníka přidruženého k zadané primární skupině.

(Zděděno od ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Vrátí pole bajtů hodnot, které představují informace popisovače zabezpečení pro tento ObjectSecurity objekt.

(Zděděno od ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Vrátí reprezentaci jazyka SDDL (Security Descriptor Definition Language) zadaných oddílů popisovače zabezpečení přidruženého k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Použije zadanou změnu volitelného seznamu Access Control (DACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Použije zadanou změnu volitelného seznamu Access Control (DACL) přidruženého k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Použije zadanou změnu na seznam Access Control systému (SACL) přidružený k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Použije zadanou změnu na seznam Access Control systému (SACL) přidružený k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Uloží zadané části popisovače zabezpečení přidružené k tomuto ObjectSecurity objektu do trvalého úložiště. Doporučujeme, aby hodnoty includeSections parametrů předané konstruktoru a trvalým metodám byly identické.

(Zděděno od ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Uloží zadané části popisovače zabezpečení přidružené k tomuto NativeObjectSecurity objektu do trvalého úložiště. Doporučujeme.persist, aby hodnoty includeSections parametrů předané konstruktoru a metody persist byly identické.

(Zděděno od NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Uloží zadané části popisovače zabezpečení přidružené k tomuto NativeObjectSecurity objektu do trvalého úložiště. Doporučujeme, aby hodnoty includeSections parametrů předané konstruktoru a trvalým metodám byly identické.

(Zděděno od NativeObjectSecurity)
Persist(String, AccessControlSections)

Uloží zadané části popisovače zabezpečení přidružené k tomuto NativeObjectSecurity objektu do trvalého úložiště. Doporučujeme, aby hodnoty includeSections parametrů předané konstruktoru a trvalým metodám byly identické.

(Zděděno od NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Uloží zadané části popisovače zabezpečení přidružené k tomuto NativeObjectSecurity objektu do trvalého úložiště. Doporučujeme, aby hodnoty includeSections parametrů předané konstruktoru a trvalým metodám byly identické.

(Zděděno od NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Odebere všechna pravidla přístupu přidružená k zadanému IdentityReferenceobjektu .

(Zděděno od ObjectSecurity)
PurgeAuditRules(IdentityReference)

Odebere všechna pravidla auditu přidružená k zadanému IdentityReferenceobjektu .

(Zděděno od ObjectSecurity)
ReadLock()

Uzamkne tento ObjectSecurity objekt pro čtení.

(Zděděno od ObjectSecurity)
ReadUnlock()

Odemkne tento ObjectSecurity objekt pro přístup pro čtení.

(Zděděno od ObjectSecurity)
RemoveAccessRule(AccessRule)

Odebere pravidla přístupu, která obsahují stejný identifikátor zabezpečení a masku přístupu jako zadané pravidlo přístupu z volitelného seznamu Access Control (DACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
RemoveAccessRule(RegistryAccessRule)

Vyhledá pravidlo řízení přístupu se stejným uživatelem a AccessControlType (povolí nebo odepře) jako zadané pravidlo přístupu a s kompatibilními příznaky dědičnosti a šíření. Pokud se takové pravidlo najde, práva obsažená v zadaném pravidle přístupu se z něj odeberou.

RemoveAccessRuleAll(AccessRule)

Odebere všechna pravidla přístupu, která mají stejný identifikátor zabezpečení jako zadané pravidlo přístupu z volitelného seznamu Access Control (DACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
RemoveAccessRuleAll(RegistryAccessRule)

Vyhledá všechna pravidla řízení přístupu se stejným uživatelem a AccessControlType (povolí nebo odepře) jako zadané pravidlo, a pokud je najde, odebere je.

RemoveAccessRuleSpecific(AccessRule)

Odebere všechna pravidla přístupu, která přesně odpovídají zadanému pravidlu přístupu, z volitelného seznamu Access Control (DACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
RemoveAccessRuleSpecific(RegistryAccessRule)

Vyhledá pravidlo řízení přístupu, které přesně odpovídá zadanému pravidlu, a pokud ho najde, odebere ho.

RemoveAuditRule(AuditRule)

Odebere pravidla auditu, která obsahují stejný identifikátor zabezpečení a masku přístupu jako zadané pravidlo auditu ze seznamu Access Control systému (SACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
RemoveAuditRule(RegistryAuditRule)

Vyhledá pravidlo řízení auditu se stejným uživatelem jako zadané pravidlo a s kompatibilními příznaky dědičnosti a šíření. Pokud se najde kompatibilní pravidlo, odeberou se z něj práva obsažená v zadaném pravidle.

RemoveAuditRuleAll(AuditRule)

Odebere všechna pravidla auditu, která mají stejný identifikátor zabezpečení jako zadané pravidlo auditu, ze seznamu Access Control systému (SACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
RemoveAuditRuleAll(RegistryAuditRule)

Vyhledá všechna pravidla auditu se stejným uživatelem jako zadané pravidlo, a pokud je najde, odebere je.

RemoveAuditRuleSpecific(AuditRule)

Odebere všechna pravidla auditu, která přesně odpovídají zadanému pravidlu auditu, ze seznamu Access Control systému (SACL) přidruženého k tomuto CommonObjectSecurity objektu.

(Zděděno od CommonObjectSecurity)
RemoveAuditRuleSpecific(RegistryAuditRule)

Vyhledá pravidlo auditu, které přesně odpovídá zadanému pravidlu, a pokud ho najde, odebere ho.

ResetAccessRule(AccessRule)

Odebere všechna pravidla přístupu v volitelném seznamu Access Control (DACL) přidružené k tomuto CommonObjectSecurity objektu a pak přidá zadané pravidlo přístupu.

(Zděděno od CommonObjectSecurity)
ResetAccessRule(RegistryAccessRule)

Odebere všechna pravidla řízení přístupu se stejným uživatelem jako zadané pravidlo bez AccessControlTypeohledu na a pak přidá zadané pravidlo.

SetAccessRule(AccessRule)

Odebere všechna pravidla přístupu, která obsahují stejný identifikátor zabezpečení a kvalifikátor jako zadané pravidlo přístupu v volitelném seznamu Access Control (DACL) přidruženého k tomuto CommonObjectSecurity objektu, a pak přidá zadané pravidlo přístupu.

(Zděděno od CommonObjectSecurity)
SetAccessRule(RegistryAccessRule)

Odebere všechna pravidla řízení přístupu se stejným uživatelem a AccessControlType (povolí nebo odepře) jako zadané pravidlo, a pak přidá zadané pravidlo.

SetAccessRuleProtection(Boolean, Boolean)

Nastaví nebo odebere ochranu pravidel přístupu přidružených k tomuto ObjectSecurity objektu. Pravidla chráněného přístupu nemohou být upravena nadřazenými objekty prostřednictvím dědičnosti.

(Zděděno od ObjectSecurity)
SetAuditRule(AuditRule)

Odebere všechna pravidla auditu, která obsahují stejný identifikátor zabezpečení a kvalifikátor jako zadané pravidlo auditu v seznamu Access Control systému (SACL) přidružené k tomuto CommonObjectSecurity objektu, a pak přidá zadané pravidlo auditu.

(Zděděno od CommonObjectSecurity)
SetAuditRule(RegistryAuditRule)

Odebere všechna pravidla auditu se stejným uživatelem jako zadané pravidlo bez ohledu na AuditFlags hodnotu a pak přidá zadané pravidlo.

SetAuditRuleProtection(Boolean, Boolean)

Nastaví nebo odebere ochranu pravidel auditu přidružených k tomuto ObjectSecurity objektu. Chráněná pravidla auditu nemohou být upravena nadřazenými objekty prostřednictvím dědičnosti.

(Zděděno od ObjectSecurity)
SetGroup(IdentityReference)

Nastaví primární skupinu pro popisovač zabezpečení přidružený k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
SetOwner(IdentityReference)

Nastaví vlastníka popisovače zabezpečení přidruženého k tomuto ObjectSecurity objektu.

(Zděděno od ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Nastaví popisovač zabezpečení pro tento ObjectSecurity objekt ze zadaného pole hodnot bajtů.

(Zděděno od ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Nastaví zadané části popisovače zabezpečení pro tento ObjectSecurity objekt ze zadaného pole hodnot bajtů.

(Zděděno od ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Nastaví popisovač zabezpečení pro tento ObjectSecurity objekt ze zadaného řetězce jazyka SDDL (Security Descriptor Definition Language).

(Zděděno od ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Nastaví zadané části popisovače zabezpečení pro tento ObjectSecurity objekt ze zadaného řetězce jazyka SDDL (Security Descriptor Definition Language).

(Zděděno od ObjectSecurity)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
WriteLock()

Uzamkne tento ObjectSecurity objekt pro přístup pro zápis.

(Zděděno od ObjectSecurity)
WriteUnlock()

Odemkne tento ObjectSecurity objekt pro přístup pro zápis.

(Zděděno od ObjectSecurity)

Platí pro