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.