Partilhar via


Resumo da tecnologia para ACLs

Este tópico resume as informações sobre a API gerenciada para listas de controle de acesso discricional (DACLs), listas de controle de acesso do sistema (SACLs) e entradas de controle de acesso (ACEs). Você pode usar as classes no protegido de namespaceSystem.Security.AccessControl para acessar programaticamente as DACLs e SACLs ACEs para vários tipos de recursos do.NET Framework versão 2.0 e posterior.

A API gerenciada do ACL facilita o trabalho com ACLs que a implementação não gerenciada, fornecendo várias classes que cuidam de muitos detalhes para você. Por exemplo, não é possível criar null DACLs na implementação gerenciada e você não precisa se preocupar sobre a criação de acidentalmente uma DACL insegura devido a ordenação de incorretamente ACEs.

Palavras-chave

Lista de controle de acesso (ACL), discretionary access control list (DACL), system access control list (SACL), a entrada de controle de acesso (ACE), ACE de auditoria

Namespaces

System.Security.AccessControl

Tecnologias relacionadas

Segurança no .NET Framework

Segundo plano

Uma lista de controle de acesso discricional (DACL), cuja abreviação é geralmente a ACL, é um mecanismo usado pelo Microsoft Windows NT e posterior para proteger recursos como, por exemplo, arquivos e pastas. DACLs contenham várias entradas de controle de acesso (ACEs) que associa uma entidade (geralmente uma conta de usuário ou grupo de contas) com uma regra que rege o uso do recurso. As DACLs e ACEs permitem conceder ou negar direitos aos recursos com base nas permissões que você pode associar às contas de usuário. Por exemplo, você pode criar uma ACE e aplicá-lo na DACL de um arquivo de barra somente um administrador de leitura do arquivo.

Uma system access control list (SACL), que às vezes é chamado como uma ACE de auditoria, é um mecanismo que controla as mensagens de auditoria associadas a um recurso. Da mesma forma que as DACLs, SACLs contêm os ACEs que definem as regras de auditoria para um determinado recurso. ACEs de auditoria permitem registro bem-sucedido ou tentativas fracassadas de acessar um recurso, mas diferem das ACEs de acesso porque eles não regulam quais contas podem usar um recurso. Por exemplo, você pode criar uma ACE e aplicá-lo a SACL de um arquivo para todas as tentativas bem-sucedidas para abrir o arquivo de log.

Classes ACL num relance

A tabela a seguir lista as classes principais que você pode usar para criar e modificar as ACLs para várias áreas de tecnologia com facilidade. Não é uma lista abrangente da System.Security.AccessControl namespace, mas em vez disso, uma lista das classes principais que você deve usar para trabalhar com ACLs.

Área de tecnologia

Classes

Chaves criptográficas

CryptoKeySecurity

CryptoKeyAccessRule

CryptoKeyAuditRule

Diretórios

DirectorySecurity

FileSystemAccessRule

FileSystemAuditRule

Identificadores de espera do evento

EventWaitHandleSecurity

EventWaitHandleAccessRule

EventWaitHandleAuditRule

Files

FileSecurity

FileSystemAccessRule

FileSystemAuditRule

Exclusões mútuas

MutexSecurity

MutexAccessRule

MutexAuditRule

Chaves do registro

RegistrySecurity

RegistryAccessRule

RegistryAuditRule

Semáforos

SemaphoreSecurity

SemaphoreAccessRule

SemaphoreAuditRule

Para consultar as informações existentes de ACL de um recurso ou aplicar as informações de ACL modificadas para um recurso, você deve usar um dos vários métodos que fornecem acesso ACLs de um recurso existente. As classes na tabela anterior fornecem métodos para criar e editar as ACLs, mas eles não fornecem maneiras para consultar ou aplicar ACLs.

Cada recurso possui métodos aplicam ACLs durante a criação de recurso (geralmente uma sobrecarga de construtor), que recuperam as ACLs de um recurso existente e que aplicar ACLs a um recurso existente associados.

A tabela a seguir lista os métodos usados para obter e definir ACLs para cada área de tecnologia. Esses métodos estão localizados em vários namespaces fora do System.Security.AccessControl parte do namespace e são as classes de alto nível que representam um recurso específico. Por exemplo, para consultar as ACLs para um diretório especificado, use o Directory.GetAccessControl método para obter o DirectorySecurity objeto que encapsula as DACLs e SACLs para o diretório. Observe que alguns recursos, como, por exemplo, arquivos e diretórios, tem vários métodos equivalentes em diferentes classes que fornecem acesso às ACLs.

Área de tecnologia

Métodos para obter e definir ACLs

Chaves criptográficas

CspParameters.CryptoKeySecurity

CspParameters.CspParameters

CspParameters.CspParameters

CspKeyContainerInfo.CryptoKeySecurity

Diretórios

Directory.GetAccessControl

Directory.SetAccessControl

DirectoryInfo.GetAccessControl

DirectoryInfo.SetAccessControl

DirectoryInfo.Create

Identificadores de espera do evento

EventWaitHandle.GetAccessControl

EventWaitHandle.SetAccessControl

EventWaitHandle.EventWaitHandle

Files

FileStream.GetAccessControl

FileStream.SetAccessControl

FileStream.FileStream

File.GetAccessControl

File.SetAccessControl

File.Create

FileInfo.GetAccessControl

FileInfo.SetAccessControl

Exclusões mútuas

Mutex.GetAccessControl

Mutex.SetAccessControl

Mutex.Mutex

Chaves do registro

RegistryKey.GetAccessControl

RegistryKey.SetAccessControl

RegistryKey.CreateSubKey

Semáforos

Semaphore.GetAccessControl

Semaphore.SetAccessControl

Semaphore.Semaphore

Consulte também

Outros recursos

ACL Technology Overview

Segurança no .NET Framework