Arquitetura de tecnologia da ACL

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

A.NET Framework fornece acesso às ACLs para os seguintes recursos:

  • Chaves criptográficas

  • Diretórios

  • Identificadores 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 das situações, 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 tirar da seguinte forma:

  • 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 <Nome do recurso>Security. Por exemplo, o FileSecurity e DirectorySecurity classes 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 <Nome do recurso>AccessRule.

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

  • Enumerações de vários 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 para ACLs.

Adicionar ACEs 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á-lo para remover uma regra existente a partir de um recurso. Por exemplo, você pode criar uma regra usando o FileSystemAccessRule classe especifica que somente os administradores podem abrir um arquivo. Você poderia adicionar essa regra para um FileSecurity de objeto ou remover uma regra semelhante de uma FileSecurity objeto.

Adicionar uma ACE que concede acesso não garante que uma entidade receberá acesso pois uma regra de negação sempre substitui uma regra de permissão. Por exemplo, se você adicionar uma regra de acesso de permitir uma conta de sistema para um arquivo, isso não significa que a pessoa terá acesso porque eles podem também ser acesso negados 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 um acesso ou auditoria regras que podem ser mescladas com a nova regra. Se nenhum for encontrado, adiciona a nova regra.

SetAccessRule

Remove todas as regras de controle de acesso com o mesmo usuário e AccessControlType valor (Allow ou Deny) como a regra especificada, em seguida, adiciona a regra especificada.

SetAuditRule

Remove todos auditoria regras com o mesmo usuário como a regra especificada, independentemente do AuditFlags valor, em seguida, adiciona a regra especificada.

ResetAccessRule

Remove todas as regras de controle de acesso com o mesmo usuário como a regra especificada, independentemente do AccessControlType valor, 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) como a regra especificada e com compatível herança e propagação sinalizadores. Se encontrado, os direitos contidos na regra de acesso especificado serão removidos da regra.

RemoveAuditRule

Procura por uma regra de controle de auditoria com o mesmo usuário como a regra especificada e com os sinalizadores de herança e propagação compatíveis. Se encontrado, os direitos contidos na regra especificada são removidos da regra.

RemoveAccessRuleAll

Procura por todas as regras de acesso com o mesmo usuário e AccessControlType valor (Allow ou Deny) conforme o especificado regra e, se encontrado, remove-los.

RemoveAuditRuleAll

Pesquisa para todas as regras com o mesmo usuário como a regra especificada de auditoria e, se encontrado, remove-los.

RemoveAccessRuleSpecific

- e -

RemoveAuditRuleSpecific

Pesquisa para um acesso ou auditoria regras que exatamente corresponde a regra especificada e, se encontrado, remove a regra.

AddAccessRule

- e -

AddAuditRule

Procura um acesso ou auditoria regras 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 definir 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 com o recurso. Para propagar as alterações de volta para um recurso, use um do SetAccesscontrol métodos associados com o recurso. Observe que as alterações são propagadas não volta a um recurso até que você os reaplicar explicitamente com um dos métodos set.

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

Consulte também

Outros recursos

ACL Technology Overview

Segurança no .NET Framework