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 ACL estrutura (lista de controlo de acesso).
Importante
Essa classe e seus membros não podem ser usados em aplicativos executados no Tempo de Execução do Windows.
Sintaxe
class CAcl
Membros
Definições de Tipos Públicas
| Nome | Description |
|---|---|
| CAcl::CAccessMaskArray | Uma variedade de ACCESS_MASKs. |
| CAcl::CAceFlagArray | Um conjunto de BYTES. |
| CAcl::CAceTypeArray | Um conjunto de BYTES. |
Construtores Públicos
| Nome | Description |
|---|---|
| CAcl::CAcl | O construtor. |
| CAcl::~CAcl | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CAcl::GetAceCount | Devolve o número de objetos de entrada de controlo de acesso (ACE). |
| CAcl::GetAclEntries | Recupera as entradas da lista de controlo de acesso (ACL) do CAcl objeto. |
| CAcl::GetAclEntry | Recupera toda a informação sobre uma entrada num CAcl objeto. |
| CAcl::GetLength | Devolve o comprimento do LCA. |
| CAcl::GetPACL | Devolve um PACL (apontador para um ACL). |
| CAcl::IsEmpty | Testa o CAcl objeto para entradas. |
| CAcl::IsNull | Devolve o estado do CAcl objeto. |
| CAcl::RemoveAce | Remove uma ACE específica (entrada de controlo de acesso) do CAcl objeto. |
| CAcl::RemoveAces | Remove todas as ACEs (entradas de controlo de acesso) do CAcl que se aplicam ao dado CSid. |
| CAcl::SetEmpty | Marca o CAcl objeto como vazio. |
| CAcl::SetNull | Marca o CAcl objeto como NULL. |
Operadores Públicos
| Nome | Description |
|---|---|
| CAcl::operator const ACL * | Lança um CAcl objeto numa ACL estrutura. |
| CAcl::operator = | Operador de atribuição. |
Observações
A ACL estrutura é o cabeçalho de uma ACL (lista de controlo de acesso). Uma ACL inclui uma lista sequencial de zero ou mais ACEs (entradas de controlo de acesso). Os ACEs individuais numa ACL são numerados de 0 a n-1, onde n é o número de ACEs na ACL. Ao editar uma ACL, uma aplicação refere-se a uma entrada de controlo de acesso (ACE) dentro da ACL pelo seu índice.
Existem dois tipos de LCA:
Discricionário
Sistema
Um ACL discricionário é controlado pelo proprietário de um objeto ou por qualquer pessoa que tenha WRITE_DAC acesso ao objeto. Especifica o acesso que determinados utilizadores e grupos podem ter a um objeto. Por exemplo, o proprietário de um ficheiro pode usar uma ACL discricionária para controlar quais utilizadores e grupos podem ou não ter acesso ao ficheiro.
Um objeto pode também ter informação de segurança ao nível do sistema associada, sob a forma de uma ACL de sistema controlada por um administrador de sistema. Uma ACL de sistema pode permitir que o administrador do sistema audite quaisquer tentativas de acesso a um objeto.
Para mais detalhes, consulte a discussão sobre ACL no SDK do Windows.
Para uma introdução ao modelo de controlo de acesso no Windows, veja Controlo de Acesso no SDK do Windows.
Requerimentos
Cabeçalho: atlsecurity.h
CAcl::CAccessMaskArray
Um conjunto de ACCESS_MASK objetos.
typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;
Observações
Este tipo de definição especifica o tipo de array que pode ser usado para armazenar direitos de acesso usados em entradas de controlo de acesso (ACEs).
CAcl::CAceFlagArray
Um conjunto de BYTES.
typedef CAtlArray<BYTE> CAceFlagArray;
Observações
Este tipodef especifica o tipo de array usado para definir as flags de controlo de acesso (ACE) específicas para o tipo de controlo de controlo (ACE). Consulte a definição ACE_HEADER para a lista completa de possíveis flags.
CAcl::CAceTypeArray
Um conjunto de BYTES.
typedef CAtlArray<BYTE> CAceTypeArray;
Observações
Este tipo de definição especifica o tipo de array usado para definir a natureza dos objetos de entrada de controlo de acesso (ACE), como ACCESS_ALLOWED_ACE_TYPE ou ACCESS_DENIED_ACE_TYPE. Consulte a definição ACE_HEADER para a lista completa dos tipos possíveis.
CAcl::CAcl
O construtor.
CAcl() throw();
CAcl(const CAcl& rhs) throw(...);
Parâmetros
RHS
Um objeto existente CAcl .
Observações
O CAcl objeto pode ser criado opcionalmente usando um objeto existente CAcl .
CAcl::~CAcl
O destruidor.
virtual ~CAcl() throw();
Observações
O destruidor liberta quaisquer recursos adquiridos pelo objeto.
CAcl::GetAceCount
Devolve o número de objetos de entrada de controlo de acesso (ACE).
virtual UINT GetAceCount() const throw() = 0;
Valor de retorno
Devolve o número de entradas ACE no CAcl objeto.
CAcl::GetAclEntries
Recupera as entradas da lista de controlo de acesso (ACL) do CAcl objeto.
void GetAclEntries(
CSid::CSidArray* pSids,
CAccessMaskArray* pAccessMasks = NULL,
CAceTypeArray* pAceTypes = NULL,
CAceFlagArray* pAceFlags = NULL) const throw(...);
Parâmetros
pSids
Um apontador para um array de objetos CSid .
pAccessMasks
As máscaras de acesso.
pAceTypes
Os tipos de entrada de controlo de acesso (ACE).
pAceFlags
As bandeiras ACE.
Observações
Este método preenche os parâmetros do array com os detalhes de cada objeto ACE contido no CAcl objeto. Use NULL quando os detalhes desse array em particular não forem necessários.
O conteúdo de cada array corresponde entre si, ou seja, o primeiro elemento do CAccessMaskArray array corresponde ao primeiro elemento do CSidArray array, e assim sucessivamente.
Consulte ACE_HEADER para mais detalhes sobre tipos e flags de ACE.
CAcl::GetAclEntry
Recupera toda a informação sobre uma entrada numa lista de controlo de acesso (ACL).
void GetAclEntry(
UINT nIndex,
CSid* pSid,
ACCESS_MASK* pMask = NULL,
BYTE* pType = NULL,
BYTE* pFlags = NULL,
GUID* pObjectType = NULL,
GUID* pInheritedObjectType = NULL) const throw(...);
Parâmetros
nIndex
Índice para a entrada ACL para recuperar.
pSid
O objeto CSid ao qual se aplica a entrada ACL.
pMask
A máscara especifica permissões para conceder ou negar acesso.
pType
Do tipo ACE.
pFlags
As bandeiras ACE.
pObjectType
O tipo de objeto. Isto será definido para GUID_NULL se o tipo de objeto não for especificado no ACE, ou se o ACE não for um ACE OBJECTO.
pInheritedObjectType
O tipo de objeto herdado. Isto será definido para GUID_NULL se o tipo de objeto herdado não estiver especificado no ACE, ou se o ACE não for um ACE OBJECTO.
Observações
Este método recupera toda a informação sobre um ACE individual, fornecendo mais informação do que o CAcl::GetAclEntries disponibiliza.
Consulte ACE_HEADER para mais detalhes sobre tipos e flags de ACE.
CAcl::GetLength
Devolve o comprimento da lista de controlo de acesso (ACL).
UINT GetLength() const throw();
Valor de retorno
Devolve o comprimento necessário em bytes para manter a ACL estrutura.
CAcl::GetPACL
Devolve um ponteiro para uma lista de controlo de acesso (ACL).
const ACL* GetPACL() const throw(...);
Valor de retorno
Devolve um ponteiro para a ACL estrutura.
CAcl::IsEmpty
Testa o CAcl objeto para entradas.
bool IsEmpty() const throw();
Observações
Retorna TRUE se o CAcl objeto não for NULL e não contiver entradas. Retorna FALSE se o CAcl objeto for NULL, ou contiver pelo menos uma entrada.
CAcl::IsNull
Devolve o estado do CAcl objeto.
bool IsNull() const throw();
Valor de retorno
Retorna TRUE se o CAcl objeto for NULL, FALSE caso contrário.
CAcl::operator const ACL *
Conjura um CAcl objeto para uma ACL estrutura (lista de controlo de acesso).
operator const ACL *() const throw(...);
Observações
Devolve o endereço da ACL estrutura.
CAcl::operator =
Operador de atribuição.
CAcl& operator= (const CAcl& rhs) throw(...);
Parâmetros
RHS
O CAcl para atribuir ao objeto existente.
Valor de retorno
Devolve uma referência ao objeto atualizado CAcl .
CAcl::RemoveAce
Remove uma ACE específica (entrada de controlo de acesso) do CAcl 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.
CAcl::RemoveAces
Remove todas as ACEs (entradas de controlo de acesso) do CAcl que se aplicam ao dado CSid.
bool RemoveAces(const CSid& rSid) throw(...)
Parâmetros
rSid
Uma referência a um objeto CSid.
CAcl::SetEmpty
Marca o CAcl objeto como vazio.
void SetEmpty() throw();
Observações
Podem CAcl ser definidos para vazio ou para NULL: os dois estados são distintos.
CAcl::SetNull
Marca o CAcl objeto como NULL.
void SetNull() throw();
Observações
Podem CAcl ser definidos para vazio ou para NULL: os dois estados são distintos.
Consulte também
Visão geral da classe
Funções Globais de Segurança