Classe CAcl
Essa classe é um wrapper para uma estrutura ACL
(lista de controle de acesso).
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CAcl
Membros
Typedefs públicos
Nome | Descrição |
---|---|
CAcl::CAccessMaskArray | Uma matriz de ACCESS_MASKs. |
CAcl::CAceFlagArray | Uma matriz de BYTEs. |
CAcl::CAceTypeArray | Uma matriz de BYTEs. |
Construtores públicos
Nome | Descrição |
---|---|
CAcl::CAcl | O construtor . |
CAcl::~CAcl | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CAcl::GetAceCount | Retorna o número de objetos de ACE (entrada de controle de acesso). |
CAcl::GetAclEntries | Recupera as entradas da ACL (lista de controle de acesso) do objeto CAcl . |
CAcl::GetAclEntry | Recupera todas as informações sobre uma entrada em um objeto CAcl . |
CAcl::GetLength | Retorna o tamanho da ACL. |
CAcl::GetPACL | Retorna um PACL (ponteiro para uma ACL). |
CAcl::IsEmpty | Testa o objeto CAcl para entradas. |
CAcl::IsNull | Retorna o status do objeto CAcl . |
CAcl::RemoveAce | Remove uma ACE (entrada de controle de acesso) específica do objeto CAcl . |
CAcl::RemoveAces | Remove todas as ACEs (entradas de controle de acesso) de CAcl que se aplicam ao CSid específico. |
CAcl::SetEmpty | Marca o objeto CAcl como vazio. |
CAcl::SetNull | Marca o objeto CAcl como NULL. |
Operadores públicos
Nome | Descrição |
---|---|
CAcl::operator const ACL * | Converte um objeto CAcl em uma estrutura ACL . |
CAcl::operator = | Operador de atribuição. |
Comentários
A estrutura ACL
é o cabeçalho de uma ACL (lista de controle de acesso). Uma ACL inclui uma lista sequencial de zero ou mais ACEs (entradas de controle de acesso). As ACEs individuais em uma ACL são numeradas de 0 a n-1, em que n é o número de ACEs na ACL. Ao editar uma ACL, um aplicativo refere-se a uma ACE (entrada de controle de acesso) dentro da ACL por seu índice.
Há dois tipos de ACL:
Discricionária
Sistema
Uma ACL discricionária é controlada pelo proprietário de um objeto ou qualquer pessoa que recebeu acesso WRITE_DAC ao objeto. Ela especifica o acesso que determinados usuários e grupos podem ter a um objeto. Por exemplo, o proprietário de um arquivo pode usar uma ACL discricionária para controlar quais usuários e grupos podem e não podem ter acesso ao arquivo.
Um objeto também pode ter informações de segurança no nível do sistema associadas a ele, na forma de uma ACL do sistema controlada por um administrador do sistema. Uma ACL do sistema pode permitir que o administrador do sistema audite tentativas de obter acesso a um objeto.
Para obter mais detalhes, confira a discussão sobre ACL no SDK do Windows.
Para ver uma introdução ao modelo de controle de acesso no Windows, confira Controle de Acesso no SDK do Windows.
Requisitos
Cabeçalho: atlsecurity.h
CAcl::CAccessMaskArray
Uma matriz de objetos ACCESS_MASK.
typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;
Comentários
Esse typedef especifica o tipo de matriz que pode ser usado para armazenar direitos de acesso usados em ACEs (entradas de controle de acesso).
CAcl::CAceFlagArray
Uma matriz de BYTEs.
typedef CAtlArray<BYTE> CAceFlagArray;
Comentários
Esse typedef especifica o tipo de matriz usado para definir os sinalizadores de controle específicos de tipo da ACE (entrada de controle de acesso). Confira a definição de ACE_HEADER para obter a lista completa de possíveis sinalizadores.
CAcl::CAceTypeArray
Uma matriz de BYTEs.
typedef CAtlArray<BYTE> CAceTypeArray;
Comentários
Esse typedef especifica o tipo de matriz usado para definir a natureza dos objetos da ACE (entrada de controle de acesso), como ACCESS_ALLOWED_ACE_TYPE ou ACCESS_DENIED_ACE_TYPE. Confira a definição de ACE_HEADER para obter a lista completa de tipos possíveis.
CAcl::CAcl
O construtor .
CAcl() throw();
CAcl(const CAcl& rhs) throw(...);
Parâmetros
rhs
Um objeto CAcl
existente.
Comentários
O objeto CAcl
pode ser criado opcionalmente usando um objeto CAcl
existente.
CAcl::~CAcl
O destruidor.
virtual ~CAcl() throw();
Comentários
O destruidor libera todos os recursos adquiridos pelo objeto.
CAcl::GetAceCount
Retorna o número de objetos de ACE (entrada de controle de acesso).
virtual UINT GetAceCount() const throw() = 0;
Valor de retorno
Retorna o número de entradas de ACE no objeto CAcl
.
CAcl::GetAclEntries
Recupera as entradas da ACL (lista de controle de acesso) do objeto CAcl
.
void GetAclEntries(
CSid::CSidArray* pSids,
CAccessMaskArray* pAccessMasks = NULL,
CAceTypeArray* pAceTypes = NULL,
CAceFlagArray* pAceFlags = NULL) const throw(...);
Parâmetros
pSids
Um ponteiro para uma matriz de objetos CSid.
pAccessMasks
As máscaras de acesso.
pAceTypes
Os tipos de ACE (entrada de controle de acesso).
pAceFlags
Os sinalizadores de ACE.
Comentários
Esse método preenche os parâmetros da matriz com os detalhes de cada objeto ACE contido no objeto CAcl
. Use NULL quando os detalhes dessa matriz específica não forem necessários.
Os conteúdos de cada matriz correspondem uns aos outros, ou seja, o primeiro elemento da matriz CAccessMaskArray
corresponde ao primeiro elemento na matriz CSidArray
e assim por diante.
Confira ACE_HEADER para obter mais detalhes sobre os tipos de ACE e sinalizadores.
CAcl::GetAclEntry
Recupera todas as informações sobre uma entrada em uma ACL (lista de controle de acesso).
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
Indexar na entrada da ACL a ser recuperada.
pSid
O objeto CSid ao qual a entrada da ACL se aplica.
pMask
A máscara que especifica permissões para conceder ou negar acesso.
pType
O tipo de ACE.
pFlags
Os sinalizadores de ACE.
pObjectType
O tipo de objeto. Isso será definido como GUID_NULL se o tipo de objeto não for especificado na ACE ou se a ACE não for um OBJECT ACE.
pInheritedObjectType
O tipo de objeto herdado. Isso será definido como GUID_NULL se o tipo de objeto herdado não for especificado na ACE ou se a ACE não for um OBJECT ACE.
Comentários
Esse método recuperará todas as informações sobre uma ACE individual, fornecendo mais informações do que CAcl::GetAclEntries sozinho disponibiliza.
Confira ACE_HEADER para obter mais detalhes sobre os tipos de ACE e sinalizadores.
CAcl::GetLength
Retorna o tamanho da ACL (lista de controle de acesso).
UINT GetLength() const throw();
Valor de retorno
Retorna o tamanho necessário em bytes necessários para manter a estrutura ACL
.
CAcl::GetPACL
Retorna um ponteiro para uma ACL (lista de controle de acesso).
const ACL* GetPACL() const throw(...);
Valor de retorno
Retorna um ponteiro para a estrutura ACL
.
CAcl::IsEmpty
Testa o objeto CAcl
para entradas.
bool IsEmpty() const throw();
Comentários
Retornará TRUE se o objeto CAcl
não for NULL e não contiver nenhuma entrada. Retornará FALSE se o objeto CAcl
for NULL ou contiver pelo menos uma entrada.
CAcl::IsNull
Retorna o status do objeto CAcl
.
bool IsNull() const throw();
Valor de retorno
Retornará TRUE se o objeto CAcl
for NULL. Caso contrário, FALSE.
CAcl::operator const ACL *
Converte um objeto CAcl
em uma estrutura ACL
(lista de controle de acesso).
operator const ACL *() const throw(...);
Comentários
Retorna o endereço da estrutura ACL
.
CAcl::operator =
Operador de atribuição.
CAcl& operator= (const CAcl& rhs) throw(...);
Parâmetros
rhs
O CAcl
a ser atribuído ao objeto existente.
Valor de retorno
Retorna uma referência ao objeto CAcl
atualizado.
CAcl::RemoveAce
Remove uma ACE (entrada de controle de acesso) específica do objeto CAcl
.
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.
CAcl::RemoveAces
Remove todas as ACEs (entradas de controle de acesso) de CAcl
que se aplicam ao CSid
específico.
bool RemoveAces(const CSid& rSid) throw(...)
Parâmetros
rSid
Uma referência a um objeto CSid
.
CAcl::SetEmpty
Marca o objeto CAcl
como vazio.
void SetEmpty() throw();
Comentários
O CAcl
pode ser definido como vazio ou NULL: os dois estados são distintos.
CAcl::SetNull
Marca o objeto CAcl
como NULL.
void SetNull() throw();
Comentários
O CAcl
pode ser definido como vazio ou NULL: os dois estados são distintos.