RegistrySecurity Classe

Definição

Representa a segurança do controlo de acesso do Windows para uma chave de registo. Esta classe não pode ser herdada.

public ref class RegistrySecurity sealed : System::Security::AccessControl::NativeObjectSecurity
public sealed class RegistrySecurity : System.Security.AccessControl.NativeObjectSecurity
type RegistrySecurity = class
    inherit NativeObjectSecurity
Public NotInheritable Class RegistrySecurity
Inherits NativeObjectSecurity
Herança

Exemplos

Esta seção contém dois exemplos de código. O primeiro exemplo mostra como regras compatíveis se fundem quando adicionadas e removidas, e o segundo mostra como as bandeiras de herança e propagação afetam a adição e eliminação de regras.

Exemplo 1

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

O exemplo cria um RegistrySecurity objeto e adiciona uma regra que permite os direitos atuais do utilizador RegistryRights.ReadKey . O exemplo cria então uma regra que concede ao utilizador 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, pelo que é removido da regra compatível. As regras no RegistrySecurity objeto são apresentadas, mostrando os restantes constituintes de ReadKey.

O código de exemplo chama então o AddAccessRule método para fundir o SetValue direito de volta à regra no RegistrySecurity objeto.

Note

Este exemplo não associa o objeto de segurança a um RegistryKey objeto. O segundo exemplo nesta secção anexa um objeto de segurança, e também 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 seguinte demonstra regras de acesso com herança e propagação. O exemplo cria um RegistrySecurity objeto, depois cria e adiciona duas regras que têm a ContainerInherit bandeira. A primeira regra não tem flags de propagação, enquanto a segunda tem NoPropagateInherit e InheritOnly.

O programa apresenta as regras no RegistrySecurity objeto e depois usa o RegistrySecurity objeto para criar uma subchave. O programa cria uma subchave filho e uma subchave neta, depois exibe a segurança de cada subchave. Finalmente, o programa elimina as teclas 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

Observações

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

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

Note

A segurança do controlo de acesso Windows só pode ser aplicada a chaves de registo. Não pode ser aplicado a pares de chave/valor individuais armazenados numa chave.

As RegistrySecurityclasses , RegistryAccessRule, e RegistryAuditRule escondem os detalhes de implementação das ACLs e ACEs. Permitem-lhe ignorar os dezassete tipos diferentes de ACE e a complexidade de manter corretamente a herança e propagação dos direitos de acesso. Estes objetos são também concebidos para evitar os seguintes erros comuns de controlo de acesso:

  • Criar um descritor de segurança com um DACL nulo. Uma referência nula a um DACL permite a qualquer utilizador adicionar regras de acesso a um objeto, podendo criar um ataque de negação de serviço. Um novo RegistrySecurity objeto começa sempre com um DACL vazio, que nega todo o acesso a todos os utilizadores.

  • Violar a ordem canónica dos ACEs. Se a lista ACE no DACL não for mantida na ordem canónica, os utilizadores podem, inadvertidamente, ter acesso ao objeto protegido. Por exemplo, direitos de acesso negados devem sempre aparecer antes dos direitos de acesso permitidos. RegistrySecurity os objetos mantêm a ordem correta internamente.

  • Manipulação de flags de descritores de segurança, que devem estar apenas sob controlo do gestor de recursos.

  • Criar combinações inválidas de flags ACE.

  • Manipular ASES herdados. A herança e propagação são tratadas pelo gestor de recursos, em resposta às alterações que faz nas regras de acesso e auditoria.

  • Inserir ACEs sem significado em ACLs.

As únicas capacidades não suportadas pelos objetos de segurança .NET são atividades perigosas que devem ser evitadas pela maioria dos programadores de aplicações, tais como as seguintes:

  • Tarefas de baixo nível normalmente realizadas pelo gestor de recursos.

  • Adicionar ou remover entradas de controlo de acesso de formas que não mantêm a ordem canónica.

Para modificar Windows segurança de controlo de acesso para uma chave de registo, use o método RegistryKey.GetAccessControl para obter o objeto RegistrySecurity. Modifica o objeto de segurança adicionando e removendo regras, e depois usa o RegistryKey.SetAccessControl método para o reanexar.

Importante

As alterações que faz a um RegistrySecurity objeto não afetam os níveis de acesso da chave do registo até chamar o RegistryKey.SetAccessControl método para atribuir o objeto de segurança alterado à chave do registo.

Para copiar a segurança do controlo de acesso de uma chave de registo para outra, use o RegistryKey.GetAccessControl método para obter um RegistrySecurity objeto que represente as regras de acesso e auditoria para a primeira chave do registo, e depois use o RegistryKey.SetAccessControl método para atribuir essas regras à segunda chave do registo. Também podes atribuir as regras a uma segunda chave de registo com um RegistryKey.OpenSubKey método ou RegistryKey.CreateSubKey que recebe um RegistrySecurity parâmetro de objeto.

Utilizadores com investimento na linguagem de definição de descritores de segurança (SDDL) podem usar o SetSecurityDescriptorSddlForm método para definir regras de acesso para uma chave de registo, e o GetSecurityDescriptorSddlForm método para obter uma cadeia que representa as regras de acesso em formato SDDL. Isto não é recomendado para novos desenvolvimentos.

Construtores

Name Description
RegistrySecurity()

Inicializa uma nova instância da RegistrySecurity classe com valores por defeito.

Propriedades

Name Description
AccessRightType

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

AccessRulesModified

Recebe ou define um valor booleano que especifica se as regras de acesso associadas a este ObjectSecurity objeto foram modificadas.

(Herdado de ObjectSecurity)
AccessRuleType

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

AreAccessRulesCanonical

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

(Herdado de ObjectSecurity)
AreAccessRulesProtected

Recebe um valor booleano que especifica se a Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto ObjectSecurity está protegida.

(Herdado de ObjectSecurity)
AreAuditRulesCanonical

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

(Herdado de ObjectSecurity)
AreAuditRulesProtected

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

(Herdado de ObjectSecurity)
AuditRulesModified

Recebe ou define um valor booleano que especifica se as regras de auditoria associadas a este ObjectSecurity objeto foram modificadas.

(Herdado de ObjectSecurity)
AuditRuleType

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

GroupModified

Recebe ou define um valor booleano que especifica se o grupo associado ao objeto securável foi modificado.

(Herdado de ObjectSecurity)
IsContainer

Obtém um valor booleano que especifica se este ObjectSecurity objeto é um objeto contentor.

(Herdado de ObjectSecurity)
IsDS

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

(Herdado de ObjectSecurity)
OwnerModified

Recebe ou define um valor booleano que especifica se o proprietário do objeto securável foi modificado.

(Herdado de ObjectSecurity)

Métodos

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

Cria uma nova regra de controlo de acesso para o utilizador especificado, com os direitos de acesso especificados, controlo de acesso e flags.

AddAccessRule(AccessRule)

Adiciona a regra de acesso especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAccessRule(RegistryAccessRule)

Procura um controlo de acesso correspondente com o qual a nova regra possa ser fundida. Se não for encontrada nenhuma, adiciona a nova regra.

AddAuditRule(AuditRule)

Adiciona a regra de auditoria especificada à Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
AddAuditRule(RegistryAuditRule)

Procura uma regra de auditoria com a qual a nova regra possa ser integrada. Se não for encontrada nenhuma, adiciona a nova regra.

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

Cria uma nova regra de auditoria, especificando o utilizador a que a regra se aplica, os direitos de acesso à auditoria, a herança e propagação da regra, e o resultado que desencadeia 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 principal associado ao proprietário especificado.

(Herdado de ObjectSecurity)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetOwner(Type)

Associa o proprietário ao grupo principal especificado.

(Herdado de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Devolve um array de valores de bytes que representa a informação do descritor de segurança para este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Devolve a representação da Linguagem de Definição de Descritores de Segurança (SDDL) das secções especificadas do descritor de segurança associado a este ObjectSecurity objeto.

(Herdado de ObjectSecurity)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

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

Aplica a modificação especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

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

Aplica a modificação especificada à Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto ObjectSecurity.

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

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

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

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

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

Guarda as secções especificadas do descritor de segurança associado a este ObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

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

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos persistir que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

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

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
Persist(String, AccessControlSections)

Guarda as secções especificadas do descritor de segurança associado a este NativeObjectSecurity objeto para armazenamento permanente. Recomendamos que os valores dos includeSections parâmetros passados ao construtor e aos métodos persist sejam idênticos.

(Herdado de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Remove todas as regras de acesso associadas ao .IdentityReference

(Herdado de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Remove todas as regras de auditoria associadas ao .IdentityReference

(Herdado de ObjectSecurity)
ReadLock()

Bloqueia este ObjectSecurity objeto para acesso de leitura.

(Herdado de ObjectSecurity)
ReadUnlock()

Desbloqueia este ObjectSecurity objeto para acesso de leitura.

(Herdado de ObjectSecurity)
RemoveAccessRule(AccessRule)

Remove regras de acesso que contenham o mesmo identificador de segurança e máscara de acesso que a regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRule(RegistryAccessRule)

Procura uma regra de controlo de acesso com o mesmo utilizador e AccessControlType (permitir ou recusar) que a regra de acesso especificada, e com flags de herança e propagação compatíveis; se tal regra for encontrada, os direitos contidos na regra de acesso especificada são removidos dela.

RemoveAccessRuleAll(AccessRule)

Remove todas as regras de acesso que tenham o mesmo identificador de segurança da regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleAll(RegistryAccessRule)

Pesquisa todas as regras de controlo de acesso com o mesmo utilizador e AccessControlType (permitir ou recusar) como a regra especificada e, se encontrada, remove-as.

RemoveAccessRuleSpecific(AccessRule)

Remove todas as regras de acesso que correspondam exatamente à regra de acesso especificada da Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAccessRuleSpecific(RegistryAccessRule)

Procura uma regra de controlo de acesso que corresponda exatamente à regra especificada e, se encontrada, remove-a.

RemoveAuditRule(AuditRule)

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

(Herdado de CommonObjectSecurity)
RemoveAuditRule(RegistryAuditRule)

Procura uma regra de controlo de auditoria com o mesmo utilizador da regra especificada, e com flags de herança e propagação compatíveis; se for encontrada uma regra compatível, os direitos contidos na regra especificada são removidos dela.

RemoveAuditRuleAll(AuditRule)

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

(Herdado de CommonObjectSecurity)
RemoveAuditRuleAll(RegistryAuditRule)

Pesquisa todas as regras de auditoria com o mesmo utilizador que a regra especificada e, se encontrada, remove-as.

RemoveAuditRuleSpecific(AuditRule)

Remove todas as regras de auditoria que correspondam exatamente à regra de auditoria especificada da Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity.

(Herdado de CommonObjectSecurity)
RemoveAuditRuleSpecific(RegistryAuditRule)

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

ResetAccessRule(AccessRule)

Remove todas as regras de acesso na Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
ResetAccessRule(RegistryAccessRule)

Remove todas as regras de controlo de acesso com o mesmo utilizador que a regra especificada, independentemente de AccessControlType, e depois adiciona a regra especificada.

SetAccessRule(AccessRule)

Remove todas as regras de acesso que contenham o mesmo identificador de segurança e qualificador que a regra de acesso especificada na Lista de Controlo de Acesso Discricionária (DACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de acesso especificada.

(Herdado de CommonObjectSecurity)
SetAccessRule(RegistryAccessRule)

Remove todas as regras de controlo de acesso com o mesmo utilizador e AccessControlType (permitir ou recusar) como regra especificada, e depois adiciona a regra especificada.

SetAccessRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de acesso associadas a este ObjectSecurity objeto. As regras de acesso protegido não podem ser modificadas por objetos-pai através da herança.

(Herdado de ObjectSecurity)
SetAuditRule(AuditRule)

Remove todas as regras de auditoria que contenham o mesmo identificador de segurança e qualificador que a regra de auditoria especificada na Lista de Controlo de Acesso do Sistema (SACL) associada a este objeto CommonObjectSecurity e depois adiciona a regra de auditoria especificada.

(Herdado de CommonObjectSecurity)
SetAuditRule(RegistryAuditRule)

Remove todas as regras de auditoria com o mesmo utilizador que a regra especificada, independentemente do AuditFlags valor, e depois adiciona a regra especificada.

SetAuditRuleProtection(Boolean, Boolean)

Define ou remove a proteção das regras de auditoria associadas a este ObjectSecurity objeto. As regras de auditoria protegidas não podem ser modificadas por objetos-pais através da herança.

(Herdado de ObjectSecurity)
SetGroup(IdentityReference)

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

(Herdado de ObjectSecurity)
SetOwner(IdentityReference)

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

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

Define as secções especificadas do descritor de segurança para este ObjectSecurity objeto a partir do array especificado de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Define o descritor de segurança para este ObjectSecurity objeto a partir do array especificado de valores de bytes.

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

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

(Herdado de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

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

(Herdado de ObjectSecurity)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
WriteLock()

Bloqueia este ObjectSecurity objeto para acesso de escrita.

(Herdado de ObjectSecurity)
WriteUnlock()

Desbloqueia este ObjectSecurity objeto para acesso por escrita.

(Herdado de ObjectSecurity)

Aplica-se a