Compartilhar via


RegistrySecurity Classe

Definição

Representa a segurança do controle de acesso do Windows para uma chave do Registro. Essa classe não pode ser herdada.

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
Herança
Atributos

Exemplos

Esta seção contém dois exemplos de código. O primeiro exemplo mostra como as regras compatíveis se mesclam quando adicionadas e removidas e a segunda mostra como os sinalizadores de herança e propagação afetam a adição e a exclusão de regras.

Exemplo 1

O exemplo de código a seguir mostra como o RemoveAccessRule método remove direitos de uma regra compatível e como o AddAccessRule método mescla direitos com regras compatíveis.

O exemplo cria um RegistrySecurity objeto e adiciona uma regra que permite os direitos de usuário RegistryRights.ReadKey atuais. Em seguida, o exemplo cria uma regra que concede ao usuário RegistryRights.SetValue, com os mesmos direitos de herança e propagação que a primeira regra, e usa o RemoveAccessRule método para remover essa nova regra do RegistrySecurity objeto. SetValue é um constituinte de ReadKey, portanto, ele é removido da regra compatível. As regras no RegistrySecurity objeto são exibidas, mostrando os constituintes restantes de ReadKey.

Em seguida, o código de exemplo chama o AddAccessRule método para mesclar o SetValue direito de volta à regra no RegistrySecurity objeto .

Observação

Este exemplo não anexa o objeto de segurança a um RegistryKey objeto . O segundo exemplo nesta seção anexa um objeto de segurança, assim como os exemplos em RegistryKey.GetAccessControl e 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
'

Exemplo 2

O exemplo de código a seguir demonstra regras de acesso com herança e propagação. O exemplo cria um RegistrySecurity objeto e, em seguida, cria e adiciona duas regras que têm o ContainerInherit sinalizador. A primeira regra não tem sinalizadores de propagação, enquanto a segunda tem NoPropagateInherit e InheritOnly.

O programa exibe as regras no RegistrySecurity objeto e usa o RegistrySecurity objeto para criar uma subchave. O programa cria uma subchave filho e uma subchave de neto e exibe a segurança de cada subchave. Por fim, o programa exclui as chaves de teste.


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

Comentários

Um RegistrySecurity objeto especifica os direitos de acesso para uma chave do Registro e também especifica como as tentativas de acesso são auditadas. Os direitos de acesso à chave do Registro são expressos como regras, com cada regra de acesso representada por um RegistryAccessRule objeto . Cada regra de auditoria é representada por um RegistryAuditRule objeto .

Isso espelha o sistema de segurança subjacente do Windows, no qual cada objeto protegível tem no máximo uma DACL (lista de controle de acesso discricionário) que controla o acesso ao objeto protegido e, no máximo, uma SACL (lista de controle de acesso do sistema) que especifica quais tentativas de acesso são auditadas. O DACL e o SACL são listas ordenadas de ACE (entradas de controle de acesso) que especificam acesso e auditoria para usuários e grupos. Um RegistryAccessRule objeto ou RegistryAuditRule pode representar mais de um ACE.

Observação

A segurança do controle de acesso do Windows só pode ser aplicada às chaves do Registro. Ele não pode ser aplicado a pares de chave/valor individuais armazenados em uma chave.

As RegistrySecurityclasses , RegistryAccessRulee RegistryAuditRule ocultam os detalhes de implementação de ACLs e ACEs. Eles permitem que você ignore os dezessete tipos de ACE diferentes e a complexidade de manter corretamente a herança e a propagação de direitos de acesso. Esses objetos também são projetados para evitar os seguintes erros comuns de controle de acesso:

  • Criando um descritor de segurança com uma DACL nula. Uma referência nula a um DACL permite que qualquer usuário adicione regras de acesso a um objeto, potencialmente criando um ataque de negação de serviço. Um novo RegistrySecurity objeto sempre começa com um DACL vazio, que nega todo o acesso para todos os usuários.

  • Violando a ordenação canônica de ACEs. Se a lista ACE na DACL não for mantida na ordem canônica, os usuários poderão ter acesso inadvertidamente ao objeto protegido. Por exemplo, os direitos de acesso negados sempre devem aparecer antes dos direitos de acesso permitidos. RegistrySecurity os objetos mantêm a ordem correta internamente.

  • Manipulando sinalizadores de descritor de segurança, que devem estar apenas sob controle do gerenciador de recursos.

  • Criando combinações inválidas de sinalizadores ACE.

  • Manipulando ACEs herdados. A herança e a propagação são tratadas pelo gerenciador de recursos, em resposta às alterações feitas nas regras de acesso e auditoria.

  • Inserindo ACEs sem sentido em ACLs.

Os únicos recursos não compatíveis com os objetos de segurança do .NET são atividades perigosas que devem ser evitadas pela maioria dos desenvolvedores de aplicativos, como o seguinte:

  • Tarefas de baixo nível que normalmente são executadas pelo gerenciador de recursos.

  • Adicionar ou remover entradas de controle de acesso de maneiras que não mantêm a ordenação canônica.

Para modificar a segurança do controle de acesso do Windows para uma chave do Registro, use o RegistryKey.GetAccessControl método para obter o RegistrySecurity objeto . Modifique o objeto de segurança adicionando e removendo regras e, em seguida, use o RegistryKey.SetAccessControl método para reanexá-lo.

Importante

As alterações feitas em um RegistrySecurity objeto não afetam os níveis de acesso da chave do Registro até que você chame o RegistryKey.SetAccessControl método para atribuir o objeto de segurança alterado à chave do Registro.

Para copiar a segurança do controle de acesso de uma chave do Registro para outra, use o RegistryKey.GetAccessControl método para obter um RegistrySecurity objeto que representa as regras de acesso e auditoria da primeira chave do Registro e, em seguida, use o RegistryKey.SetAccessControl método para atribuir essas regras à segunda chave do Registro. Você também pode atribuir as regras a uma segunda chave do Registro com um RegistryKey.OpenSubKey método ou RegistryKey.CreateSubKey que usa um RegistrySecurity parâmetro de objeto.

Os usuários com um investimento na linguagem de definição de descritor de segurança (SDDL) podem usar o SetSecurityDescriptorSddlForm método para definir regras de acesso para uma chave do Registro e o GetSecurityDescriptorSddlForm método para obter uma cadeia de caracteres que representa as regras de acesso no formato SDDL. Isso não é recomendado para o novo desenvolvimento.

Construtores

RegistrySecurity()

Inicializa uma nova instância da classe RegistrySecurity com valores padrão.

Propriedades

AccessRightType

Obtém o tipo de enumeração que a classe RegistrySecurity usa para representar os direitos de acesso.

AccessRulesModified

Obtém ou define um valor booliano que especifica se as regras de acesso associadas a este objeto ObjectSecurity foram modificadas.

(Herdado de ObjectSecurity)
AccessRuleType

Obtém o tipo que a classe RegistrySecurity usa para representar as regras de acesso.

AreAccessRulesCanonical

Obtém um valor booliano que especifica se as regras de acesso associadas a este objeto ObjectSecurity estão na ordem canônica.

(Herdado de ObjectSecurity)
AreAccessRulesProtected

Obtém um valor booliano que especifica se a DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AreAuditRulesCanonical

Obtém um valor booliano que especifica se as regras de auditoria associadas a este objeto ObjectSecurity estão na ordem canônica.

(Herdado de ObjectSecurity)
AreAuditRulesProtected

Obtém um valor booliano que especifica se a SACL (Lista de Controle de Acesso do Sistema) associada a esse objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AuditRulesModified

Obtém ou define um valor booliano que especifica se as regras de auditoria associadas a este objeto ObjectSecurity foram modificadas.

(Herdado de ObjectSecurity)
AuditRuleType

Obtém o tipo que a classe RegistrySecurity usa para representar as regras de auditoria.

GroupModified

Obtém ou define um valor booliano que especifica se o grupo associado ao objeto protegível foi modificado.

(Herdado de ObjectSecurity)
IsContainer

Obtém um valor booliano que especifica se este ObjectSecurity é um objeto contêiner.

(Herdado de ObjectSecurity)
IsDS

Obtém um valor booliano que especifica se este ObjectSecurity é um objeto de diretório.

(Herdado de ObjectSecurity)
OwnerModified

Obtém ou define um valor booliano que especifica se o proprietário do objeto protegível foi modificado.

(Herdado de ObjectSecurity)
SecurityDescriptor

Obtém o descritor de segurança para esta instância.

(Herdado de ObjectSecurity)

Métodos

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

Cria uma nova regra de controle de acesso para o usuário especificado, com os direitos de acesso, o controle de acesso e os sinalizadores especificados.

AddAccessRule(AccessRule)

Aplica a regra de acesso especificada à DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAccessRule(RegistryAccessRule)

Pesquisa um controle de acesso correspondente com o qual a nova regra pode ser mesclada. Se nenhum erro for encontrado, adiciona a nova regra.

AddAuditRule(AuditRule)

Adiciona a regra de auditoria especificada à SACL (Lista de Controle de Acesso do Sistema) associada ao objeto CommonObjectSecurity atual.

(Herdado de CommonObjectSecurity)
AddAuditRule(RegistryAuditRule)

Pesquisa uma regra de auditoria com a qual a nova regra pode ser mesclada. Se nenhum erro for encontrado, adiciona a nova regra.

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

Cria uma nova regra de auditoria, especificando o usuário ao qual a regra se aplica, os direitos de acesso para auditoria, a herança e a propagação da regra e o resultado que dispara a regra.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAccessRules(Boolean, Boolean, Type)

Obtém uma coleção das regras de acesso associadas ao identificador de segurança especificado.

(Herdado de CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Obtém uma coleção das regras de auditoria associadas ao identificador de segurança especificado.

(Herdado de CommonObjectSecurity)
GetGroup(Type)

Obtém o grupo primário associado ao proprietário especificado.

(Herdado de ObjectSecurity)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetOwner(Type)

Obtém o proprietário associado ao grupo primário especificado.

(Herdado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Retorna uma matriz de valores de byte que representa as informações do descritor de segurança para este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Retorna a representação em SDDL (Linguagem de Definição do Descritor de Segurança) das seções especificadas do descritor de segurança associado a este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Aplica a modificação especificada à DACL (Lista de controle de acesso discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Aplica a modificação especificada à DACL (Lista de controle de acesso discricionário) associada a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Aplica a modificação especificada à SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Aplica a modificação especificada à SACL (Lista de Controle de Acesso do Sistema) associada a este objeto ObjectSecurity.

(Herdado de ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a este objeto ObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros includeSections passados para o construtor e os métodos persist sejam idênticos.

(Herdado de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros includeSections passados para o construtor e os métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros includeSections passados para o construtor e os métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections)

Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros includeSections passados para o construtor e os métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Salva as seções especificadas do descritor de segurança associado a este objeto NativeObjectSecurity no armazenamento permanente. É recomendável que os valores dos parâmetros includeSections passados para o construtor e os métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Remove todas as regras de acesso associadas à IdentityReference especificada.

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao IdentityReference especificado.

(Herdado de ObjectSecurity)
ReadLock()

Bloqueia este objeto ObjectSecurity para acesso de leitura.

(Herdado de ObjectSecurity)
ReadUnlock()

Desbloqueia este objeto ObjectSecurity para acesso de leitura.

(Herdado de ObjectSecurity)
RemoveAccessRule(AccessRule)

Remove as regras de acesso que contêm a mesma máscara de acesso e o identificador de segurança, como a regra de acesso especificada da DACL (lista de controle de acesso discricionário) associada a esse objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRule(RegistryAccessRule)

Pesquisa por uma regra de controle de acesso com o mesmo usuário e AccessControlType (permitir ou negar) como a regra de acesso especificada e com sinalizadores de herança e de propagação compatíveis; se uma regra com essas características for encontrada, os direitos contidos na regra de acesso especificada serão removidos dela.

RemoveAccessRuleAll(AccessRule)

Remove todas as regras de acesso que correspondem ao mesmo identificador de segurança que a regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleAll(RegistryAccessRule)

Pesquisa por todas as regras de controle de acesso com o mesmo usuário e AccessControlType (permitir ou negar) como a regra especificada e, se encontradas, remove-as.

RemoveAccessRuleSpecific(AccessRule)

Remove todas as regras de acesso que correspondem com exatidão à regra de acesso especificada da DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleSpecific(RegistryAccessRule)

Pesquisa por uma regra de controle de acesso que corresponda exatamente à regra especificada e, se encontrada, remove-a.

RemoveAuditRule(AuditRule)

Remove todas as regras de auditoria que contêm o mesmo identificador de segurança e máscara de acesso que a regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRule(RegistryAuditRule)

Pesquisa uma regra de controle de auditoria com o mesmo usuário que a regra especificada e com sinalizadores de herança e de propagação compatíveis; se uma regra compatível for encontrada, os direitos contidos na regra especificada serão removidos dela.

RemoveAuditRuleAll(AuditRule)

Remove todas as regras de auditoria que têm o mesmo identificador de segurança que a regra de auditoria especificada da SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleAll(RegistryAuditRule)

Pesquisa todas as regras de auditoria com o mesmo usuário que a regra especificada e, se encontradas, remove-as.

RemoveAuditRuleSpecific(AuditRule)

Remove todas as regras de auditoria que correspondem com exatidão à regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleSpecific(RegistryAuditRule)

Pesquisa por uma regra de auditoria que corresponda exatamente à regra especificada e, se encontrada, remove-a.

ResetAccessRule(AccessRule)

Remove todas as regras de acesso na DACL (Lista de Controle de Acesso Discricionário) associada a este objeto CommonObjectSecurity e, em seguida, adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
ResetAccessRule(RegistryAccessRule)

Remove todas as regras de controle de acesso com o mesmo usuário que a regra especificada, independentemente de AccessControlType e, em seguida, adiciona a regra especificada.

SetAccessRule(AccessRule)

Remove todas as regras de acesso que contêm o mesmo identificador de segurança e qualificador que a regra de acesso especificada na DACL (Lista de Controle de Acesso Discricionário) associada a esse objeto CommonObjectSecurity e, em seguida, adiciona a regra de acesso indicada.

(Herdado de CommonObjectSecurity)
SetAccessRule(RegistryAccessRule)

Remove todas as regras de controle de acesso com o mesmo usuário e AccessControlType (permitir ou negar) que a regra especificada e, em seguida, adiciona a regra especificada.

SetAccessRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de acesso associada a este objeto ObjectSecurity. As regras de acesso protegidas não podem ser modificadas por objetos pai por meio da herança.

(Herdado de ObjectSecurity)
SetAuditRule(AuditRule)

Remove todas as regras de auditoria que contêm o mesmo identificador de segurança e qualificador que a regra de auditoria especificada na SACL (Lista de Controle de Acesso do Sistema) associada a este objeto CommonObjectSecurity e, em seguida, adiciona a regra de auditoria indicada.

(Herdado de CommonObjectSecurity)
SetAuditRule(RegistryAuditRule)

Remove todas as regras de auditoria com o mesmo usuário que a regra especificada, independentemente do valor de AuditFlags e, em seguida, adiciona a regra especificada.

SetAuditRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de auditoria associadas a este objeto ObjectSecurity. As regras de auditoria protegidas não podem ser modificadas por objetos pai por meio da herança.

(Herdado de ObjectSecurity)
SetGroup(IdentityReference)

Define o grupo primário para o descritor de segurança associado a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
SetOwner(IdentityReference)

Define o proprietário para o descritor de segurança associado a esse objeto ObjectSecurity.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Define o descritor de segurança para este objeto ObjectSecurity da matriz especificada de valores de byte.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Define as seções especificadas do descritor de segurança para este objeto ObjectSecurity da matriz especificada de valores de byte.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Define o descritor de segurança para este objeto ObjectSecurity da cadeia de caracteres SDDL (Linguagem de Definição do Descritor de Segurança) especificada.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Define as seções especificadas do descritor de segurança para este objeto ObjectSecurity da cadeia de caracteres SDDL (Linguagem de Definição do Descritor de Segurança) especificada.

(Herdado de ObjectSecurity)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WriteLock()

Bloqueia este objeto ObjectSecurity para acesso de gravação.

(Herdado de ObjectSecurity)
WriteUnlock()

Desbloqueia este objeto ObjectSecurity para acesso de gravação.

(Herdado de ObjectSecurity)

Aplica-se a