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
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 retorno
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 retorno
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 retorno
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 retorno
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 aula
Funções globais de segurança