Arquitetura de tecnologia da ACL

The System.Security.AccessControl namespace fornece listas de controle de acesso para acesso através de classes convenientes abstraem muito da complexidade do sistema de segurança de ACL do Windows. Além disso, a System.Security.AccessControl espaço para nome contém várias classes que fornecem acesso avançado ao sistema de segurança de ACL do Windows.

O .NET estrutura fornece acesso às ACLs para os seguintes recursos:

  • Chaves criptográficas

  • Diretórios

  • Alças de espera do evento

  • Files

  • Exclusões mútuas

  • Chaves do registro

  • Semáforos

Cada um desses recursos tem várias classes que você pode usar para criar e modificar as ACLs.

Hierarquia de classes ACL

Para a maioria dos cenários, você pode usar as classes abstratas, de nível superiores em vez das classes avançadas para criar e modificar as ACLs.Para cada recurso, as classes de nível superiores assumem o formato seguinte:

  • Uma classe que encapsula a lista de controle de acesso discricional (DACL) e a lista de controle de acesso do sistema (SACL).Essa classe usa o nome de <Nome do recurso>Security.Por exemplo, a FileSecurity e DirectorySecurity classes de encapsulam as DACLs e SACLs para arquivos e pastas.

  • Uma classe que encapsula uma entrada de controle de acesso (ACE).Essa classe usa o nome de <Nome do recurso>AccessRule.

  • Uma classe que encapsula uma ACE de auditoria.Essa classe usa o nome de <Nome do recurso>AuditRule.

  • Vários enumerações que permitem que você crie acesso específico e regras de auditoria.

  • Para obter uma lista completa de todas as classes ACL de alto nível, consulte Resumo da tecnologia de ACLs.

Adicionar ACEs para ACLs

Depois de criar uma ACE usando uma regra de acesso ou classes de regra de auditoria, você pode adicionar a regra a um recurso ou usá-la para remover uma regra existente de um recurso.Por exemplo, você pode criar uma regra usando o FileSystemAccessRule classe especifica que somente os administradores podem em em aberto um arquivo. Em seguida, você poderá adicionar essa regra para um FileSecurity objeto ou remover uma regra semelhante de um FileSecurity objeto.

Adicionar uma ACE concede acesso não garante que uma entidade de segurança receberá acesso pois uma regra de negação sempre substitui uma regra de permissão.Por exemplo, se você adicionar uma regra de acesso permitido para uma conta do sistema para um arquivo, isso não significa que a pessoa terá acesso porque eles talvez também seja negados o acesso ao arquivo por outra regra.

Cada <Nome do recurso>Security objeto associado a um recurso fornece os seguintes métodos para adicionar ou remover regras de acesso e regras de auditoria.

Método

Descrição

AddAccessRule

- e -

AddAuditRule

Procura por uma auditoria de acesso ou regra que podem ser mescladas com a nova regra.Se nenhum for encontrado, adiciona a nova regra.

SetAccessRule

Remove todas sistema autônomo regras de controle de acesso com o mesmo usuário e AccessControlType valor)Allow ou Deny) sistema autônomo a regra especificada, em seguida, adiciona a regra especificada.

SetAuditRule

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

ResetAccessRule

Remove todas sistema autônomo regras de controle de acesso com o mesmo usuário sistema autônomo a regra especificada, independentemente do AccessControlType valor e, em seguida, adiciona a regra especificada.

RemoveAccessRule

Procura por uma regra de controle de acesso com o mesmo usuário e AccessControlType valor)Allow ou Deny) sistema autônomo a regra especificada e com sinalizadores de herança e propagação compatível. Se encontrado, os direitos contidos a regra de acesso especificado serão removidos da regra.

RemoveAuditRule

Procura por uma regra de controle de auditoria com o mesmo usuário sistema autônomo a regra especificada e com sinalizadores de herança e propagação compatível.Se encontrado, os direitos contidos na regra especificada serão removidos da regra.

RemoveAccessRuleAll

Procura por todas sistema autônomo regras de acesso com o mesmo usuário e AccessControlType valor)Allow ou Deny) sistema autônomo a regra e, se encontrado, remove-sistema autônomo.

RemoveAuditRuleAll

Pesquisa para todas sistema autônomo regras com o mesmo usuário sistema autônomo a regra especificada de auditoria e, se encontrado, remove-sistema autônomo.

RemoveAccessRuleSpecific

- e -

RemoveAuditRuleSpecific

Procura por uma auditoria de acesso ou regra corresponde exatamente que a regra especificada e, se encontrado, remove a regra.

AddAccessRule

- e -

AddAuditRule

Procura por uma auditoria de acesso ou regra que podem ser mescladas com a nova regra.Se nenhum for encontrado, adiciona a nova regra.

Obtendo e definindo ACLs

Cada recurso protegido tem métodos que obtém e conjunto o <Nome do recurso>Security objeto associado a um recurso.Para recuperar as ACLs existentes para um recurso específico, use um do GetAccessControl métodos associados ao recurso. Para propagar alterações de volta para um recurso, use um do SetAccesscontrol métodos associados ao recurso. Observe que as alterações são propagadas não volta a um recurso até que você explicitamente as reaplicar com um dos métodos conjunto.

Para obter uma lista completa de todos os get e conjunto métodos para cada recurso protegido, consulte Resumo da tecnologia de ACLs.

Consulte também

Outros recursos

ACL Technology Overview

Segurança no .NET Framework