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ştirmesini AddAccessRule göstermektedir.

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

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

Note

Bu örnek, güvenlik nesnesini bir RegistryKey nesneye eklemez. Bu bölümdeki ikinci örnek bir güvenlik nesnesi ekler ve ve RegistryKey.GetAccessControliçindeki RegistryKey.SetAccessControl örnekler de eklenir.


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 nesne oluşturur, ardından bayrağı olan ContainerInherit iki kural oluşturur ve ekler. İlk kuralda yayma bayrağı olmazken, ikinci kuralda ve NoPropagateInheritbulunurInheritOnly.

Program nesnesindeki RegistrySecurity kuralları görüntüler ve ardından nesnesini kullanarak RegistrySecurity bir alt anahtar oluşturur. Program bir alt alt anahtar ve bir alt alt anahtar oluşturur ve ardından her alt anahtar için güvenlik 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

Nesne RegistrySecurity , bir kayıt defteri anahtarı için erişim haklarını ve ayrıca erişim girişimlerinin nasıl denetlenip denetlenemini belirtir. Kayıt defteri anahtarına erişim hakları, her erişim kuralı bir RegistryAccessRule nesne tarafından temsil edilen kurallar olarak ifade 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 girişimlerinin denetlendiğini belirten en fazla bir sistem erişim denetimi 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 denetim belirten erişim denetimi girdilerinin (ACE) sıralı listeleridir. Bir RegistryAccessRule veya RegistryAuditRule nesnesi birden fazla ACE'i temsil edebilir.

Note

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 RegistryAuditRule sınıfları, ACL'lerin 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 bir şekilde korumanın karmaşıklığını yoksaymanıza olanak sağlar. Bu nesneler ayrıca aşağıdaki yaygın erişim denetimi hatalarını önlemek için tasarlanmıştır:

  • Null DACL ile 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 bu da hizmet reddi saldırısı oluşturabilir. Yeni RegistrySecurity bir nesne her zaman boş bir DACL ile başlar ve bu da tüm kullanıcılar için tüm erişimi reddeder.

  • AE'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 resource manager denetimi altında olması gereken güvenlik tanımlayıcısı bayraklarını düzenleme.

  • ACE bayraklarının geçersiz birleş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 RegistryKey.GetAccessControl yöntemini kullanarak RegistrySecurity nesnesini alın. Kuralları ekleyerek ve kaldırarak güvenlik nesnesini değiştirin ve ardından yöntemini kullanarak RegistryKey.SetAccessControl yeniden ekleyin.

Important

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 nesne alın ve ardından bu kuralları ikinci kayıt defteri anahtarına atamak için yöntemini kullanın RegistryKey.SetAccessControl . Ayrıca, nesne parametresini alan bir veya RegistryKey.OpenSubKey yöntemiyle RegistryKey.CreateSubKey kuralları ikinci bir kayıt defteri anahtarına RegistrySecurity atayabilirsiniz.

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

Oluşturucular

Name Description
RegistrySecurity()

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

Özellikler

Name Description
AccessRightType

Sınıfı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ı Erişim Denetim 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şkilendirilmiş Sistem Erişim Denetim 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ın denetim kurallarını temsil etmek için kullandığı türü RegistrySecurity 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 hale getirilebilir 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

Name Description
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şkilendirilmiş İsteğe Bağlı Erişim Denetim 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şkilendirilmiş Sistem Erişim Denetim 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şkilendirilmiş 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()

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

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

Geçerli Objectbasit 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ı Erişim Denetim 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ı Erişim Denetim Listesi'ne (DACL) uygular.

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

Belirtilen değişikliği bu CommonObjectSecurity nesneyle ilişkilendirilmiş Sistem Erişim Denetim Listesi'ne (SACL) uygular.

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

Belirtilen değişikliği bu ObjectSecurity nesneyle ilişkilendirilmiş Sistem Erişim Denetim 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, 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(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.

(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)
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)
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ı Erişim Denetim 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ı ve AccessControlType (izin ver veya reddet) ve uyumlu devralma ve yayma bayraklarıyla 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)

Bu CommonObjectSecurity nesneyle ilişkilendirilmiş İsteğe Bağlı Erişim Denetim Listesi'nden (DACL) belirtilen erişim kuralıyla aynı güvenlik tanımlayıcısı olan tüm erişim kurallarını 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ı Erişim Denetim 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 bunu 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şkilendirilmiş Sistem Erişim Denetim 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 Erişim Denetim 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)

Bu CommonObjectSecurity nesneyle ilişkilendirilmiş Sistem Erişim Denetim Listesi'nden (SACL) belirtilen denetim kuralıyla tam olarak eşleşen tüm denetim kurallarını kaldırır.

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

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

ResetAccessRule(AccessRule)

Bu CommonObjectSecurity nesneyle ilişkili İsteğe Bağlı Erişim Denetim 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)

, ne olursa olsun AccessControlType, belirtilen kuralla aynı kullanıcıyla tüm erişim denetimi kurallarını kaldırır ve sonra belirtilen kuralı ekler.

SetAccessRule(AccessRule)

Bu CommonObjectSecurity nesneyle ilişkilendirilmiş İsteğe Bağlı Erişim Denetim 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ı üst nesneler tarafından devralma yoluyla değiştirilemez.

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

Bu CommonObjectSecurity nesneyle ilişkili Sistem Erişim Denetim 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ıyla 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ı üst nesneler tarafından devralma yoluyla 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[], AccessControlSections)

Bu ObjectSecurity nesne için güvenlik tanımlayıcısının belirtilen bölümlerini belirtilen bayt değerleri dizisinden 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)
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)
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)
ToString()

Geçerli nesneyi temsil eden bir dize 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