Share via


RegistrySecurity Sınıf

Tanım

Kayıt defteri anahtarı için Windows erişim denetimi güvenliğini temsil eder. Bu sınıf devralınamaz.

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
Devralma
Öznitelikler

Örnekler

Bu bölüm iki kod örneği içerir. İlk örnekte uyumlu kuralların eklenip kaldırıldığında nasıl birleştiği, ikinci örnekte ise devralma ve yayma bayraklarının kuralların eklenmesini ve silinmesini nasıl etkilediği gösterilmektedir.

Örnek 1

Aşağıdaki kod örneği, yönteminin RemoveAccessRule uyumlu bir kuraldan hakları nasıl kaldırıyor ve yöntemin hakları uyumlu kurallarla nasıl birleştirip birleştiremeyi AddAccessRule gösterir.

Örnek bir RegistrySecurity nesnesi oluşturur ve geçerli kullanıcı RegistryRights.ReadKey haklarına izin veren bir kural ekler. Örnek daha sonra ilk kuralla aynı devralma ve yayma haklarıyla kullanıcıya RegistryRights.SetValueveren bir kural oluşturur ve bu yeni kuralı nesneden RegistrySecurity kaldırmak için yöntemini kullanırRemoveAccessRule. SetValue , öğesinin ReadKeybir parçası olduğundan uyumlu kuraldan kaldırılır. nesnesindeki RegistrySecurity kurallar görüntülenir ve öğesinin kalan bileşenlerini ReadKeygösterir.

Örnek kod daha sonra sağını AddAccessRule nesnedeki SetValue kuralla RegistrySecurity birleştirmek için yöntemini çağırır.

Not

Bu örnek, güvenlik nesnesini bir RegistryKey nesneye eklemez. Bu bölümdeki ikinci örnekte bir güvenlik nesnesi ekleniyor ve ve RegistryKey.SetAccessControliçindeki RegistryKey.GetAccessControl örnekler de ekleniyor.


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
'

Örnek 2

Aşağıdaki kod örneği, devralma ve yayma ile erişim kurallarını gösterir. Örnek bir RegistrySecurity nesnesi oluşturur, ardından bayrağına ContainerInherit sahip iki kural oluşturur ve ekler. İlk kuralda yayma bayrağı olmazken, ikinci kuralda ve InheritOnlybulunurNoPropagateInherit.

Program nesnesindeki RegistrySecurity kuralları görüntüler ve sonra bir alt anahtar oluşturmak için nesnesini kullanır RegistrySecurity . Program bir alt alt anahtar ve alt alt anahtar oluşturur, ardından her alt anahtarın güvenliğini görüntüler. Son olarak, program test anahtarlarını siler.


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

Açıklamalar

RegistrySecurity Nesne, kayıt defteri anahtarı için erişim haklarını belirtir ve ayrıca erişim girişimlerinin nasıl denetleniyor olduğunu belirtir. Kayıt defteri anahtarına erişim hakları kural olarak ifade edilir ve her erişim kuralı bir RegistryAccessRule nesne tarafından temsil edilir. Her denetim kuralı bir RegistryAuditRule nesneyle temsil edilir.

Bu, güvenliği sağlanabilir her nesnenin güvenli nesneye erişimi denetleyen en fazla bir isteğe bağlı erişim denetim listesine (DACL) ve hangi erişim denemelerinin denetlendiğini belirten en fazla bir sistem erişim denetim listesine (SACL) sahip olduğu temel Windows güvenlik sistemini yansıtır. DACL ve SACL, kullanıcılar ve gruplar için erişim ve denetimi belirten erişim denetimi girdilerinin (ACE) sıralı listeleridir. Bir RegistryAccessRule veya RegistryAuditRule nesnesi birden fazla ACE'i temsil edebilir.

Not

Windows erişim denetimi güvenliği yalnızca kayıt defteri anahtarlarına uygulanabilir. Bir anahtarda depolanan tek tek anahtar/değer çiftlerine uygulanamaz.

RegistrySecurity, RegistryAccessRuleve sınıfları, ACL'lerin RegistryAuditRule ve ACL'lerin uygulama ayrıntılarını gizler. On yedi farklı ACE türünü ve devralmayı ve erişim haklarının yayılmasını doğru şekilde korumanın karmaşıklığını yoksaymanıza olanak sağlar. Bu nesneler, aşağıdaki yaygın erişim denetimi hatalarını önlemek için de tasarlanmıştır:

  • Null DACL ile bir güvenlik tanımlayıcısı oluşturma. DACL'ye null başvuru, herhangi bir kullanıcının bir nesneye erişim kuralları eklemesine olanak tanır ve potansiyel olarak bir hizmet reddi saldırısı oluşturur. Yeni RegistrySecurity bir nesne her zaman tüm kullanıcılar için tüm erişimi reddeden boş bir DACL ile başlar.

  • ACL'lerin kurallı sıralamasını ihlal etme. DACL'deki ACE listesi kurallı sırada tutulmazsa, kullanıcılara yanlışlıkla güvenli nesneye erişim verilebilir. Örneğin, reddedilen erişim hakları her zaman izin verilen erişim hakları öncesinde görünmelidir. RegistrySecurity nesneleri dahili olarak doğru sırayı korur.

  • Yalnızca kaynak yöneticisi denetimi altında olması gereken güvenlik tanımlayıcısı bayraklarını düzenleme.

  • ACE bayraklarının geçersiz bileşimleri oluşturuluyor.

  • Devralınan ACL'leri düzenleme. Devralma ve yayma, erişim ve denetim kurallarında yaptığınız değişikliklere yanıt olarak kaynak yöneticisi tarafından işlenir.

  • ACL'lere anlamsız ACL'ler ekleme.

.NET güvenlik nesneleri tarafından desteklenmeyen tek özellikler, uygulama geliştiricilerinin çoğunluğu tarafından kaçınılması gereken tehlikeli etkinliklerdir, örneğin:

  • Normalde kaynak yöneticisi tarafından gerçekleştirilen düşük düzeyli görevler.

  • Kurallı sıralamayı korumayan yollarla erişim denetimi girdileri ekleme veya kaldırma.

Kayıt defteri anahtarının Windows erişim denetimi güvenliğini değiştirmek için nesnesini almak RegistrySecurity için yöntemini kullanınRegistryKey.GetAccessControl. Kuralları ekleyip kaldırarak güvenlik nesnesini değiştirin ve ardından yöntemini kullanarak RegistryKey.SetAccessControl yeniden ekleyin.

Önemli

Bir RegistrySecurity nesnede yaptığınız değişiklikler, değiştirilen güvenlik nesnesini kayıt defteri anahtarına atamak için yöntemini çağırana RegistryKey.SetAccessControl kadar kayıt defteri anahtarının erişim düzeylerini etkilemez.

Erişim denetimi güvenliğini bir kayıt defteri anahtarından diğerine kopyalamak için yöntemini kullanarak RegistryKey.GetAccessControl ilk kayıt defteri anahtarının erişim ve denetim kurallarını temsil eden bir RegistrySecurity nesneyi alın ve ardından yöntemini kullanarak RegistryKey.SetAccessControl bu kuralları ikinci kayıt defteri anahtarına atayın. Ayrıca, bir nesne parametresini alan veya RegistryKey.CreateSubKey yöntemiyle kuralları ikinci bir RegistryKey.OpenSubKeyRegistrySecurity kayıt defteri anahtarına atayabilirsiniz.

Güvenlik tanımlayıcısı tanım diline (SDDL) yatırımları olan kullanıcılar, kayıt defteri anahtarına erişim kuralları ayarlamak için yöntemini ve GetSecurityDescriptorSddlForm SDDL biçiminde erişim kurallarını temsil eden bir dize elde etmek için yöntemini kullanabilirSetSecurityDescriptorSddlForm. Bu, yeni geliştirme için önerilmez.

Oluşturucular

RegistrySecurity()

RegistrySecurity sınıfının yeni bir örneğini varsayılan değerlerle başlatır.

Özellikler

AccessRightType

Sınıfının erişim haklarını temsil etmek için kullandığı numaralandırma türünü RegistrySecurity alır.

AccessRulesModified

Bu ObjectSecurity nesneyle ilişkili erişim kurallarının değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
AccessRuleType

Sınıfının erişim kurallarını temsil etmek için kullandığı türü RegistrySecurity alır.

AreAccessRulesCanonical

Bu ObjectSecurity nesneyle ilişkili erişim kurallarının kurallı sırada olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AreAccessRulesProtected

Bu ObjectSecurity nesneyle ilişkili İsteğe Bağlı Access Control Listesi'nin (DACL) korunup korunmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AreAuditRulesCanonical

Bu ObjectSecurity nesneyle ilişkili denetim kurallarının kurallı sırada olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AreAuditRulesProtected

Bu ObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'nin (SACL) korunup korunmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
AuditRulesModified

Bu ObjectSecurity nesneyle ilişkili denetim kurallarının değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
AuditRuleType

Sınıfın RegistrySecurity denetim kurallarını temsil etmek için kullandığı türü alır.

GroupModified

Güvenli hale getirilebilir nesneyle ilişkili grubun değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
IsContainer

Bu ObjectSecurity nesnenin bir kapsayıcı nesnesi olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
IsDS

Bu ObjectSecurity nesnenin bir dizin nesnesi olup olmadığını belirten bir Boole değeri alır.

(Devralındığı yer: ObjectSecurity)
OwnerModified

Güvenliği sağlanabilir nesnenin sahibinin değiştirilip değiştirilmediğini belirten bir Boole değeri alır veya ayarlar.

(Devralındığı yer: ObjectSecurity)
SecurityDescriptor

Bu örnek için güvenlik tanımlayıcısını alır.

(Devralındığı yer: ObjectSecurity)

Yöntemler

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

Belirtilen kullanıcı için, belirtilen erişim hakları, erişim denetimi ve bayraklarla yeni bir erişim denetimi kuralı oluşturur.

AddAccessRule(AccessRule)

Belirtilen erişim kuralını bu CommonObjectSecurity nesneyle ilişkili İsteğe Bağlı Access Control Listesi'ne (DACL) ekler.

(Devralındığı yer: CommonObjectSecurity)
AddAccessRule(RegistryAccessRule)

Yeni kuralın birleştirilebileceği eşleşen bir erişim denetimi arar. Hiçbir kural bulunmazsa yeni kuralı ekler.

AddAuditRule(AuditRule)

Belirtilen denetim kuralını bu CommonObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'ne (SACL) ekler.

(Devralındığı yer: CommonObjectSecurity)
AddAuditRule(RegistryAuditRule)

Yeni kuralın birleştirilebileceği bir denetim kuralı arar. Hiçbir kural bulunmazsa yeni kuralı ekler.

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

Kuralın uygulandığı kullanıcıyı, denetim erişim haklarını, kuralı devralma ve yaymayı ve kuralı tetikleyen sonucu belirterek yeni bir denetim kuralı oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetAccessRules(Boolean, Boolean, Type)

Belirtilen güvenlik tanımlayıcısıyla ilişkili erişim kuralları koleksiyonunu alır.

(Devralındığı yer: CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Belirtilen güvenlik tanımlayıcısıyla ilişkili denetim kuralları koleksiyonunu alır.

(Devralındığı yer: CommonObjectSecurity)
GetGroup(Type)

Belirtilen sahiple ilişkili birincil grubu alır.

(Devralındığı yer: ObjectSecurity)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetOwner(Type)

Belirtilen birincil grupla ilişkili sahibi alır.

(Devralındığı yer: ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Bu ObjectSecurity nesnenin güvenlik tanımlayıcı bilgilerini temsil eden bayt değerleri dizisi döndürür.

(Devralındığı yer: ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Bu ObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerinin Güvenlik Tanımlayıcısı Tanım Dili (SDDL) gösterimini döndürür.

(Devralındığı yer: ObjectSecurity)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Belirtilen değişikliği bu CommonObjectSecurity nesneyle ilişkili İsteğe Bağlı Access Control Listesi'ne (DACL) uygular.

(Devralındığı yer: CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Belirtilen değişikliği bu ObjectSecurity nesneyle ilişkili İsteğe Bağlı Access Control Listesi'ne (DACL) uygular.

(Devralındığı yer: ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Belirtilen değişikliği bu CommonObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'ne (SACL) uygular.

(Devralındığı yer: CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Belirtilen değişikliği bu ObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'ne (SACL) uygular.

(Devralındığı yer: ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Bu ObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen parametrelerin değerlerinin includeSections aynı olmasını öneririz.

(Devralındığı yer: ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Bu NativeObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucuya geçirilen parametrelerin değerlerinin includeSections ve kalıcı yöntemlerin aynı olmasını öneririz.persist.

(Devralındığı yer: NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Bu NativeObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen parametrelerin değerlerinin includeSections aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
Persist(String, AccessControlSections)

Bu NativeObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen parametrelerin değerlerinin includeSections aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Bu NativeObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının belirtilen bölümlerini kalıcı depolama alanına kaydeder. Oluşturucu ve kalıcı yöntemlere geçirilen parametrelerin değerlerinin includeSections aynı olmasını öneririz.

(Devralındığı yer: NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Belirtilen IdentityReferenceile ilişkili tüm erişim kurallarını kaldırır.

(Devralındığı yer: ObjectSecurity)
PurgeAuditRules(IdentityReference)

Belirtilen IdentityReferenceile ilişkili tüm denetim kurallarını kaldırır.

(Devralındığı yer: ObjectSecurity)
ReadLock()

Bu ObjectSecurity nesneyi okuma erişimi için kilitler.

(Devralındığı yer: ObjectSecurity)
ReadUnlock()

Okuma erişimi için bu ObjectSecurity nesnenin kilidini açar.

(Devralındığı yer: ObjectSecurity)
RemoveAccessRule(AccessRule)

Bu CommonObjectSecurity nesneyle ilişkilendirilmiş İsteğe Bağlı Access Control Listesi'nden (DACL) belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısını ve erişim maskesini içeren erişim kurallarını kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAccessRule(RegistryAccessRule)

Belirtilen erişim kuralıyla aynı kullanıcıya ve AccessControlType (izin ver veya reddet) ve uyumlu devralma ve yayma bayraklarına sahip bir erişim denetimi kuralı arar; böyle bir kural bulunursa, belirtilen erişim kuralında yer alan haklar bu kuraldan kaldırılır.

RemoveAccessRuleAll(AccessRule)

Belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısı olan tüm erişim kurallarını bu CommonObjectSecurity nesneyle ilişkilendirilmiş İsteğe Bağlı Access Control Listesi'nden (DACL) kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAccessRuleAll(RegistryAccessRule)

Belirtilen kuralla aynı kullanıcı ve AccessControlType (izin ver veya reddet) ile tüm erişim denetimi kurallarını arar ve bulunursa bunları kaldırır.

RemoveAccessRuleSpecific(AccessRule)

Bu CommonObjectSecurity nesneyle ilişkilendirilmiş İsteğe Bağlı Access Control Listesi'nden (DACL) belirtilen erişim kuralıyla tam olarak eşleşen tüm erişim kurallarını kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAccessRuleSpecific(RegistryAccessRule)

Belirtilen kuralla tam olarak eşleşen bir erişim denetimi kuralı arar ve bulunursa kuralı kaldırır.

RemoveAuditRule(AuditRule)

Belirtilen denetim kuralıyla aynı güvenlik tanımlayıcısını ve erişim maskesini içeren denetim kurallarını bu CommonObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'nden (SACL) kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAuditRule(RegistryAuditRule)

Belirtilen kuralla aynı kullanıcıya ve uyumlu devralma ve yayma bayraklarına sahip bir denetim denetimi kuralı arar; uyumlu bir kural bulunursa, belirtilen kuralda yer alan haklar bu kuraldan kaldırılır.

RemoveAuditRuleAll(AuditRule)

Belirtilen denetim kuralıyla aynı güvenlik tanımlayıcısına sahip tüm denetim kurallarını bu CommonObjectSecurity nesneyle ilişkilendirilmiş Sistem Access Control Listesi'nden (SACL) kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAuditRuleAll(RegistryAuditRule)

Belirtilen kuralla aynı kullanıcıyla tüm denetim kurallarını arar ve bulunursa bunları kaldırır.

RemoveAuditRuleSpecific(AuditRule)

Belirtilen denetim kuralıyla tam olarak eşleşen tüm denetim kurallarını bu CommonObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'nden (SACL) kaldırır.

(Devralındığı yer: CommonObjectSecurity)
RemoveAuditRuleSpecific(RegistryAuditRule)

Belirtilen kuralla tam olarak eşleşen bir denetim kuralı arar ve bulunursa kuralı kaldırır.

ResetAccessRule(AccessRule)

Bu CommonObjectSecurity nesneyle ilişkili İsteğe Bağlı Access Control Listesi'ndeki (DACL) tüm erişim kurallarını kaldırır ve ardından belirtilen erişim kuralını ekler.

(Devralındığı yer: CommonObjectSecurity)
ResetAccessRule(RegistryAccessRule)

bağımsız olarak, AccessControlTypebelirtilen kuralla aynı kullanıcıyla tüm erişim denetimi kurallarını kaldırır ve ardından belirtilen kuralı ekler.

SetAccessRule(AccessRule)

Bu CommonObjectSecurity nesneyle ilişkili İsteğe Bağlı Access Control Listesi'nde (DACL) belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısını ve niteleyiciyi içeren tüm erişim kurallarını kaldırır ve ardından belirtilen erişim kuralını ekler.

(Devralındığı yer: CommonObjectSecurity)
SetAccessRule(RegistryAccessRule)

Belirtilen kuralla aynı kullanıcı ve AccessControlType (izin ver veya reddet) ile tüm erişim denetimi kurallarını kaldırır ve ardından belirtilen kuralı ekler.

SetAccessRuleProtection(Boolean, Boolean)

Bu ObjectSecurity nesneyle ilişkili erişim kurallarının korumasını ayarlar veya kaldırır. Korumalı erişim kuralları, devralma yoluyla üst nesneler tarafından değiştirilemez.

(Devralındığı yer: ObjectSecurity)
SetAuditRule(AuditRule)

Bu CommonObjectSecurity nesneyle ilişkili Sistem Access Control Listesi'nde (SACL) belirtilen denetim kuralıyla aynı güvenlik tanımlayıcısını ve niteleyiciyi içeren tüm denetim kurallarını kaldırır ve ardından belirtilen denetim kuralını ekler.

(Devralındığı yer: CommonObjectSecurity)
SetAuditRule(RegistryAuditRule)

Değerden bağımsız AuditFlags olarak, belirtilen kuralla aynı kullanıcıya sahip tüm denetim kurallarını kaldırır ve ardından belirtilen kuralı ekler.

SetAuditRuleProtection(Boolean, Boolean)

Bu ObjectSecurity nesneyle ilişkili denetim kurallarının korumasını ayarlar veya kaldırır. Korumalı denetim kuralları, devralma yoluyla üst nesneler tarafından değiştirilemez.

(Devralındığı yer: ObjectSecurity)
SetGroup(IdentityReference)

Bu ObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısı için birincil grubu ayarlar.

(Devralındığı yer: ObjectSecurity)
SetOwner(IdentityReference)

Bu ObjectSecurity nesneyle ilişkili güvenlik tanımlayıcısının sahibini ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Belirtilen bayt değerleri dizisinden bu ObjectSecurity nesne için güvenlik tanımlayıcısını ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Belirtilen bayt değerleri dizisinden bu ObjectSecurity nesne için güvenlik tanımlayıcısının belirtilen bölümlerini ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Belirtilen Güvenlik Tanımlayıcısı Tanım Dili (SDDL) dizesinden bu ObjectSecurity nesne için güvenlik tanımlayıcısını ayarlar.

(Devralındığı yer: ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Belirtilen Güvenlik Tanımlayıcısı Tanım Dili (SDDL) dizesinden bu ObjectSecurity nesne için güvenlik tanımlayıcısının belirtilen bölümlerini ayarlar.

(Devralındığı yer: ObjectSecurity)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
WriteLock()

Bu ObjectSecurity nesneyi yazma erişimi için kilitler.

(Devralındığı yer: ObjectSecurity)
WriteUnlock()

Yazma erişimi için bu ObjectSecurity nesnenin kilidini açar.

(Devralındığı yer: ObjectSecurity)

Şunlara uygulanır