Compartilhar via


Classe CDacl

Essa classe é um wrapper para uma estrutura de DACL (lista de controle de acesso discricionário).

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

class CDacl : public CAcl

Membros

Construtores públicos

Nome Descrição
CDacl::CDacl O construtor .
CDacl::~CDacl O destruidor.

Métodos públicos

Nome Descrição
CDacl::AddAllowedAce Adiciona uma ACE (entrada de controle de acesso) permitido ao objeto CDacl.
CDacl::AddDeniedAce Adiciona uma ACE negada ao objeto CDacl.
CDacl::GetAceCount Retorna o número de ACEs (entradas de controle de acesso) no objeto CDacl.
CDacl::RemoveAce Remove uma ACE (entrada de controle de acesso) específica do objeto CDacl.
CDacl::RemoveAllAces Remove todas as ACEs contidas no objeto CDacl.

Operadores públicos

Nome Descrição
CDacl::operator = Operador de atribuição.

Comentários

O descritor de segurança de um objeto pode conter uma DACL. A DACL contém zero ou mais ACEs (entradas de controle de acesso) que identificam os usuários e grupos que podem acessar o objeto. Se uma DACL estiver vazia (ou seja, ela contém zero ACEs), nenhum acesso será concedido explicitamente, portanto, o acesso será negado implicitamente. No entanto, se o descritor de segurança de um objeto não tiver uma DACL, o objeto ficará desprotegido e todos terão acesso completo.

Para recuperar a DACL de um objeto, você deve ser o proprietário do objeto ou ter acesso READ_CONTROL ao objeto. Para alterar a DACL de um objeto, você deve ter acesso WRITE_DAC ao objeto.

Use os métodos de classe fornecidos para criar, adicionar, remover e excluir ACEs do objeto CDacl. Consulte também AtlGetDacl e AtlSetDacl.

Para ver uma introdução ao modelo de controle de acesso no Windows, confira Controle de Acesso no SDK do Windows.

Hierarquia de herança

CAcl

CDacl

Requisitos

Cabeçalho: atlsecurity.h

CDacl::AddAllowedAce

Adiciona uma ACE (entrada de controle de acesso) permitido ao objeto CDacl.

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parâmetros

rSid
Um objeto CSid.

AccessMask
Especifica a máscara dos direitos de acesso a serem permitidos para o objeto CSid especificado.

AceFlags
Um conjunto de sinalizadores de bits que controlam a herança da ACE.

pObjectType
O tipo de objeto.

pInheritedObjectType
O tipo de objeto herdado.

Valor de Devolução

Retorna TRUE se a ACE for adicionada ao objeto CDacl, FALSE em caso de falha.

Comentários

Um objeto CDacl contém zero ou mais ACEs (entradas de controle de acesso) que identificam os usuários e grupos que podem acessar o objeto. Esse método adiciona uma ACE que permite o acesso ao objeto CDacl.

Confira ACE_HEADER para obter uma descrição dos vários sinalizadores que podem ser definidos no parâmetro AceFlags.

CDacl::AddDeniedAce

Adiciona uma ACE (entrada de controle de acesso) negada ao objeto CDacl.

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags = 0) throw(...);

bool AddDeniedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parâmetros

rSid
Um objeto CSid.

AccessMask
Especifica a máscara dos direitos de acesso a serem negados para o objeto CSid especificado.

AceFlags
Um conjunto de sinalizadores de bits que controlam a herança da ACE. Assume o padrão 0 na primeira forma do método.

pObjectType
O tipo de objeto.

pInheritedObjectType
O tipo de objeto herdado.

Valor de Devolução

Retorna TRUE se a ACE for adicionada ao objeto CDacl, FALSE em caso de falha.

Comentários

Um objeto CDacl contém zero ou mais ACEs (entradas de controle de acesso) que identificam os usuários e grupos que podem acessar o objeto. Esse método adiciona uma ACE que nega o acesso ao objeto CDacl.

Confira ACE_HEADER para obter uma descrição dos vários sinalizadores que podem ser definidos no parâmetro AceFlags.

CDacl::CDacl

O construtor .

CDacl (const ACL& rhs) throw(...);
CDacl () throw();

Parâmetros

rhs
Uma estrutura ACL (lista de controle de acesso) existente.

Comentários

O objeto CDacl pode ser criado opcionalmente usando uma estrutura ACL existente. É importante observar que apenas uma DACL (lista de controle de acesso discricionário) e não uma SACL (lista de controle de acesso do sistema) deve ser passada como esse parâmetro. Em builds de depuração, passar uma SACL causará um ASSERT. Em builds de lançamento, passar uma SACL fará com que as ACEs (entradas de controle de acesso) na ACL sejam ignoradas e nenhum erro ocorrerá.

CDacl::~CDacl

O destruidor.

~CDacl () throw();

Comentários

O destruidor libera todos os recursos adquiridos pelo objeto, incluindo todas as ACEs (entradas de controle de acesso) usando CDacl::RemoveAllAces.

CDacl::GetAceCount

Retorna o número de ACEs (entradas de controle de acesso) no objeto CDacl.

UINT GetAceCount() const throw();

Valor de Devolução

Retorna o número de ACEs contidas no objeto CDacl.

CDacl::operator =

Operador de atribuição.

CDacl& operator= (const ACL& rhs) throw(...);

Parâmetros

rhs
A ACL (lista de controle de acesso) a ser atribuída ao objeto existente.

Valor de Devolução

Retorna uma referência ao objeto CDacl atualizado.

Comentários

Você deve passar apenas a DACL (lista de controle de acesso discricionário) para essa função. Passar uma SACL (lista de controle de acesso do sistema) para essa função causará um ASSERT em builds de depuração, mas não causará nenhum erro em builds de lançamento.

CDacl::RemoveAce

Remove uma ACE (entrada de controle de acesso) específica do objeto CDacl.

void RemoveAce(UINT nIndex) throw();

Parâmetros

nIndex
Índice para a entrada da ACE a ser removida.

Comentários

Esse método é derivado de CAtlArray::RemoveAt.

CDacl::RemoveAllAces

Remove todas as ACEs (entradas de controle de acesso) contidas no objeto CDacl.

void RemoveAllAces() throw();

Comentários

Remove cada estrutura de ACE (entrada de controle de acesso) (se houver) do objeto CDacl.

Confira também

Exemplo de Segurança
Classe CAcl
Acls
ACEs
Visão geral da classe
Funções globais de segurança