Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe é um wrapper para uma estrutura DACL (lista de controlo de acesso discricionária).
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
class CDacl : public CAcl
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CDacl::CDacl | O construtor. |
| CDacl::~CDacl | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CDacl::AddAllowedAce | Adiciona um ACE (entrada de controlo de acesso) permitido ao CDacl objeto. |
| CDacl::AddDeniedAce | Adiciona um ACE negado ao CDacl objeto. |
| CDacl::GetAceCount | Devolve o número de ACEs (entradas de controlo de acesso) no CDacl objeto. |
| CDacl::RemoveAce | Remove uma ACE específica (entrada de controlo de acesso) do CDacl objeto. |
| CDacl::RemoveAllAces | Remove todos os ACEs contidos no CDacl objeto. |
Operadores Públicos
| Nome | Description |
|---|---|
| CDacl::operator = | Operador de atribuição. |
Observações
O descritor de segurança de um objeto pode conter um DACL. Um DACL contém zero ou mais ACEs (entradas de controlo de acesso) que identificam os utilizadores e grupos que podem aceder ao objeto. Se um DACL estiver vazio (ou seja, não contiver ACEs), nenhum acesso é explicitamente concedido, pelo que o acesso é implicitamente negado. No entanto, se o descritor de segurança de um objeto não tiver DACL, o objeto fica desprotegido e todos têm acesso completo.
Para recuperar o DACL de um objeto, deve ser o proprietário do objeto ou ter acesso READ_CONTROL ao objeto. Para alterar o DACL de um objeto, deve ter acesso WRITE_DAC ao objeto.
Use os métodos de classe fornecidos para criar, adicionar, remover e eliminar ACEs do CDacl objeto. Ver também AtlGetDacl e AtlSetDacl.
Para uma introdução ao modelo de controlo de acesso no Windows, veja Controlo de Acesso no SDK do Windows.
Hierarquia de herança
CDacl
Requerimentos
Cabeçalho: atlsecurity.h
CDacl::AddAllowedAce
Adiciona um ACE (entrada de controlo de acesso) permitido ao CDacl objeto.
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 de direitos de acesso a permitir para o objeto especificado CSid .
AceFlags
Um conjunto de flags de bits que controlam a herança ACE.
pObjectType
O tipo de objeto.
pInheritedObjectType
O tipo de objeto herdado.
Valor de retorno
Retorna TRUE se o ACE for adicionado ao CDacl objeto, FALSE em caso de falha.
Observações
Um CDacl objeto contém zero ou mais ACEs (entradas de controlo de acesso) que identificam os utilizadores e grupos que podem aceder ao objeto. Este método adiciona um ACE que permite o acesso ao CDacl objeto.
Veja ACE_HEADER para uma descrição das várias bandeiras que podem ser definidas no AceFlags parâmetro.
CDacl::AddDeniedAce
Adiciona um ACE (entrada de controlo de acesso) negado ao CDacl objeto.
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 de direitos de acesso a ser negada para o objeto especificado CSid .
AceFlags
Um conjunto de flags de bits que controlam a herança ACE. Por defeito é 0 na primeira forma do método.
pObjectType
O tipo de objeto.
pInheritedObjectType
O tipo de objeto herdado.
Valor de retorno
Retorna TRUE se o ACE for adicionado ao CDacl objeto, FALSE em caso de falha.
Observações
Um CDacl objeto contém zero ou mais ACEs (entradas de controlo de acesso) que identificam os utilizadores e grupos que podem aceder ao objeto. Este método adiciona um ACE que nega o acesso ao CDacl objeto.
Veja ACE_HEADER para uma descrição das várias bandeiras que podem ser definidas no AceFlags parâmetro.
CDacl::CDacl
O construtor.
CDacl (const ACL& rhs) throw(...);
CDacl () throw();
Parâmetros
RHS
Uma estrutura existente ACL (lista de controlo de acesso).
Observações
O CDacl objeto pode ser criado opcionalmente usando uma estrutura existente ACL . É importante notar que apenas uma DACL (lista discricionária de controlo de acesso), e não uma SACL (lista de controlo de acesso do sistema), deve ser passada como este parâmetro. Em builds de depuração, passar um SACL causa um ASSERT. Nas versões de release, passar um SACL fará com que as ACEs (entradas de controlo de acesso) na ACL sejam ignoradas, sem que haja erro.
CDacl::~CDacl
O destruidor.
~CDacl () throw();
Observações
O destruidor liberta quaisquer recursos adquiridos pelo objeto, incluindo todos os ACEs (entradas de controlo de acesso) usando CDacl::RemoveAllAces.
CDacl::GetAceCount
Devolve o número de ACEs (entradas de controlo de acesso) no CDacl objeto.
UINT GetAceCount() const throw();
Valor de retorno
Devolve o número de ACEs contidos no CDacl objeto.
CDacl::operator =
Operador de atribuição.
CDacl& operator= (const ACL& rhs) throw(...);
Parâmetros
RHS
A ACL (lista de controlo de acesso) para atribuir ao objeto existente.
Valor de retorno
Devolve uma referência ao objeto atualizado CDacl .
Observações
Deve garantir que apenas passa uma DACL (lista de controlo de acesso discricionária) para esta função. Passar uma SACL (lista de controlo de acesso ao sistema) para esta função causará um ASSERT nas compilações de depuração, mas não causará erro nas versões de release.
CDacl::RemoveAce
Remove uma ACE específica (entrada de controlo de acesso) do CDacl objeto.
void RemoveAce(UINT nIndex) throw();
Parâmetros
nIndex
Índice para a entrada ACE para remover.
Observações
Este método deriva de CAtlArray::RemoveAt.
CDacl::RemoveAllAces
Remove todas as ACEs (entradas de controlo de acesso) contidas no CDacl objeto.
void RemoveAllAces() throw();
Observações
Remove todas as ACE estruturas (entrada de controlo de acesso) (se existirem) no CDacl objeto.
Consulte também
Exemplo de Segurança
Classe CAcl
ACLs
ACEs
Visão geral da classe
Funções Globais de Segurança