RegistrySecurity Třída

Definice

Představuje Windows zabezpečení řízení přístupu 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 dědičnost a šíření příznaky ovlivňují přidání a odstraně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é umožňuje aktuální uživatelská RegistryRights.ReadKey práva. Příklad pak vytvoří pravidlo, které udělí uživateli RegistryRights.SetValue, se stejnou dědičností a šíření práv jako první pravidlo, a použije metodu RemoveAccessRule k odebrání tohoto nového pravidla z objektu RegistrySecurity . SetValue je součástí ReadKey, takže je odebrán z kompatibilního pravidla. Zobrazí se pravidla v objektu RegistrySecurity se zbývajícími složkami ReadKey.

Ukázkový kód pak volá metodu AddAccessRule , která sloučí SetValue právo zpět do pravidla v objektu RegistrySecurity .

Note

Tento příklad nepřipokládá objekt zabezpečení k objektu RegistryKey . Druhý příklad v této části připojí objekt zabezpečení, a proto proveďte 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 a 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 pomocí RegistrySecurity objektu vytvoří podklíč. Program vytvoří podřízený podklíč a podklíč s vnoučaty 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 pro klíč registru a také určuje, jak se auditují pokusy o přístup. Přístupová práva k klíči registru jsou vyjádřena jako pravidla, přičemž každé pravidlo přístupu reprezentované objektem RegistryAccessRule . Každé pravidlo auditování je reprezentováno objektem RegistryAuditRule .

To odpovídá základnímu systému zabezpečení Systému Windows, ve kterém má každý zabezpečitelný objekt nejméně jeden volitelný seznam řízení přístupu (DACL), který řídí přístup k zabezpečenému objektu, a na většině případů jeden seznam řízení přístupu (SACL), který určuje, které pokusy o přístup jsou auditovány. 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. A RegistryAccessRule nebo RegistryAuditRule objekt může představovat více než jednu ACE.

Note

Windows zabezpečení řízení přístupu lze použít pouze u klíčů registru. Nedá se použít u jednotlivých párů klíč/hodnota uložených v klíči.

Třídy RegistrySecuritya , RegistryAccessRuleRegistryAuditRule skryjí podrobnosti implementace seznamů ACL a ACL a ACL. Umožňují ignorovat sedmnáct různých typů ACE a složitost správné údržby 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í s prázdným seznamem DACL Odkaz na seznam DACL null umožňuje každému uživateli přidat pravidla přístupu k objektu, což může způsobit útok na dostupnost služby. Nový RegistrySecurity objekt vždy začíná prázdným seznamem DACL, který odmítne veškerý přístup pro všechny uživatele.

  • Porušení kanonického řazení ACL. Pokud seznam ACE v seznamu DACL není uložen v kanonickém pořadí, mohou uživatelé neúmyslně získat přístup k zabezpečenému objektu. Například odepřená přístupová práva se musí zobrazovat vždy před povolenými přístupy. RegistrySecurity objekty udržují správné pořadí interně.

  • Manipulace s příznaky popisovače zabezpečení, které by měly být pod kontrolou pouze Resource Manageru.

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

  • Manipulace s zděděnými aces. Správce prostředků zpracovává dědičnost a šíření v reakci na změny, které provedete v rámci pravidel přístupu a auditu.

  • Vložení bezvýznamných seznamů ACL do seznamů ACL

Jediné možnosti, které objekty zabezpečení .NET nepodporují, jsou nebezpečné aktivity, kterým by se měla vyhnout většina vývojářů aplikací, 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ý neudržuje kanonické řazení.

Pokud chcete upravit Windows zabezpečení řízení přístupu pro klíč registru, pomocí metody RegistryKey.GetAccessControl získejte objekt RegistrySecurity. Upravte objekt zabezpečení přidáním a odebráním pravidel a pak ji znovu RegistryKey.SetAccessControl připojte pomocí metody.

Important

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 druhého, použijte metodu RegistryKey.GetAccessControlRegistrySecurity k získání objektu představujícího pravidla přístupu a auditu pro první klíč registru a pak použijte metodu RegistryKey.SetAccessControl k přiřazení těchto pravidel druhému klíči registru. Pravidla můžete také přiřadit druhému klíči registru pomocí RegistryKey.OpenSubKey metody, RegistryKey.CreateSubKey která přebírá parametr objektu RegistrySecurity .

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

Konstruktory

Name Description
RegistrySecurity()

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

Vlastnosti

Name Description
AccessRightType

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

AccessRulesModified

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

(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á logickou hodnotu, která určuje, zda je volitelný seznam řízení přístupu (DACL) přidružený k tomuto ObjectSecurity objektu chráněn.

(Zděděno od ObjectSecurity)
AreAuditRulesCanonical

Získá logickou hodnotu, 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á logickou hodnotu, která určuje, zda je seznam řízení přístupu systému (SACL) přidružený k tomuto ObjectSecurity objektu chráněn.

(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 skupina přidružená k zabezpečitelnému objektu byla změněna.

(Zděděno od ObjectSecurity)
IsContainer

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

(Zděděno od ObjectSecurity)
IsDS

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

(Zděděno od ObjectSecurity)
OwnerModified

Získá nebo nastaví logickou hodnotu, která určuje, zda vlastník zabezpečitelného objektu byl změněn.

(Zděděno od ObjectSecurity)
SecurityDescriptor

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

(Zděděno od ObjectSecurity)

Metody

Name Description
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 řízení přístupu (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 se dá nové pravidlo sloučit. Pokud se žádné nenajde, přidá nové pravidlo.

AddAuditRule(AuditRule)

Přidá zadané pravidlo auditu do seznamu řízení přístupu systému (SACL) přidruženého k tomuto CommonObjectSecurity objektu.

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

Vyhledá pravidlo auditu, se kterým se dá 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čuje uživatel, na který 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čuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Získá kolekci přístupových pravidel 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í funkce hash.

(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é části popisovače zabezpečení přidruženého k tomuto ObjectSecurity objektu.

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

Získá Type aktuální instance.

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

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

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

Použije zadanou úpravu volitelného seznamu řízení přístupu (DACL) přidruženého k tomuto CommonObjectSecurity objektu.

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

Použije zadanou úpravu volitelného seznamu řízení přístupu (DACL) přidruženého k tomuto ObjectSecurity objektu.

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

Použije zadanou úpravu seznamu řízení přístupu systému (SACL) přidruženého k tomuto CommonObjectSecurity objektu.

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

Použije zadanou úpravu seznamu řízení přístupu systému (SACL) přidruženého k tomuto ObjectSecurity objektu.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Uzamkne tento ObjectSecurity objekt pro přístup 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 řízení přístupu (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, odeberou se z něj práva obsažená v zadaném pravidle přístupu.

RemoveAccessRuleAll(AccessRule)

Odebere všechna pravidla přístupu, která mají stejný identifikátor zabezpečení jako zadané pravidlo přístupu, z volitelného seznamu řízení přístupu (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 řízení přístupu (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 se 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 řízení přístupu 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 řízení přístupu 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 řízení přístupu 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 přístupová pravidla v volitelném seznamu řízení přístupu (DACL) přidruženém 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 ohledu na to AccessControlType, 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 řízení přístupu (DACL) přidruženém 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 nelze upravovat 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 řízení přístupu systému (SACL) přidruženém 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 AuditFlags ohledu na 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 nelze upravovat 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[], AccessControlSections)

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

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

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

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

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

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

Nastaví popisovač zabezpečení pro tento ObjectSecurity objekt ze zadaného řetězce 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 k zápisu.

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

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

(Zděděno od ObjectSecurity)

Platí pro