Classe CSacl
Essa classe é um wrapper para uma estrutura SACL (lista de controle de acesso do sistema).
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CSacl : public CAcl
Membros
Construtores públicos
Nome | Descrição |
---|---|
CSacl::CSacl | O construtor . |
CSacl::~CSacl | O destruidor. |
Métodos públicos
Nome | Descrição |
---|---|
CSacl::AddAuditAce | Adiciona uma ACE (entrada de controle de acesso) de auditoria ao objeto CSacl . |
CSacl::GetAceCount | Retorna o número de ACEs (entradas de controle de acesso) no objeto CSacl . |
CSacl::RemoveAce | Remove uma ACE (entrada de controle de acesso) específica do objeto CSacl . |
CSacl::RemoveAllAces | Remove todas as ACEs contidas no objeto CSacl . |
Operadores públicos
Nome | Descrição |
---|---|
CSacl::operator = | Operador de atribuição. |
Comentários
Uma SACL contém ACEs (entradas de controle de acesso) que especificam os tipos de tentativas de acesso que geram registros de auditoria no log de evento de segurança de um controlador de domínio. Observe que uma SACL gera entradas de log somente no controlador de domínio em que ocorreu a tentativa de acesso, não em todos os controladores de domínio que contêm uma réplica do objeto.
Para definir ou recuperar a SACL no descritor de segurança de um objeto, o privilégio SE_SECURITY_NAME deve ser habilitado no token de acesso do thread de solicitação. O grupo de administradores tem esse privilégio concedido por padrão e pode ser concedido a outros usuários ou grupos. Ter o privilégio concedido não é tudo o que é necessário: antes que a operação definida pelo privilégio possa ser executada, o privilégio deve ser habilitado no token de acesso de segurança para entrar em vigor. O modelo permite que os privilégios sejam habilitados apenas para operações específicas do sistema e, em seguida, desabilitados quando não forem mais necessários. Consulte AtlGetSacl e AtlSetSacl para obter exemplos de habilitação de SE_SECURITY_NAME.
Use os métodos de classe fornecidos para adicionar, remover, criar e excluir ACEs do objeto SACL
. Consulte também AtlGetSacl e AtlSetSacl.
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
CSacl
Requisitos
Cabeçalho: atlsecurity.h
CSacl::AddAuditAce
Adiciona uma ACE (entrada de controle de acesso) de auditoria ao objeto CSacl
.
bool AddAuditAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
bool bSuccess,
bool bFailure,
BYTE AceFlags = 0) throw(...);
bool AddAuditAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
bool bSuccess,
bool bFailure,
BYTE AceFlags,
const GUID* pObjectType,
const GUID* pInheritedObjectType) throw(...);
Parâmetros
rSid
O objeto CSid.
AccessMask
Especifica a máscara dos direitos de acesso a serem auditadas para o objeto CSid
especificado.
bSuccess
Especifica se as tentativas de acesso permitidas devem ser auditadas. Defina esse sinalizador como true para habilitar a auditoria. Caso contrário, defina-o como false.
bFailure
Especifica se as tentativas de acesso negadas devem ser auditadas. Defina esse sinalizador como true para habilitar a auditoria. Caso contrário, defina-o como false.
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 CSacl
, FALSE em caso de falha.
Comentários
Um objeto CSacl
contém ACEs (entradas de controle de acesso) que especificam os tipos de tentativas de acesso que geram registros de auditoria no log de evento de segurança. Esse método adiciona uma ACE ao objeto CSacl
.
Confira ACE_HEADER para obter uma descrição dos vários sinalizadores que podem ser definidos no parâmetro AceFlags.
CSacl::CSacl
O construtor .
CSacl() throw();
CSacl(const ACL& rhs) throw(...);
Parâmetros
rhs
Uma estrutura ACL
(lista de controle de acesso) existente.
Comentários
O objeto CSacl
pode ser criado opcionalmente usando uma estrutura ACL
existente. Verifique se esse parâmetro é uma SACL (lista de controle de acesso do sistema) e não uma DACL (lista de controle de acesso discricionário). Em builds de depuração, se uma DACL for fornecida, ocorrerá uma declaração. Em builds de versão, todas as entradas de uma DACL são ignoradas.
CSacl::~CSacl
O destruidor.
~CSacl() throw();
Comentários
O destruidor libera todos os recursos adquiridos pelo objeto, incluindo todas as ACEs (entradas de controle de acesso).
CSacl::GetAceCount
Retorna o número de ACEs (entradas de controle de acesso) no objeto CSacl
.
UINT GetAceCount() const throw();
Valor de retorno
Retorna o número de ACEs contidas no objeto CSacl
.
CSacl::operator =
Operador de atribuição.
CSacl& 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 CSacl
atualizado. Verifique se o parâmetro ACL
é uma SACL (lista de controle de acesso do sistema) e não uma DACL (lista de controle de acesso discricionário). Em builds de depuração, ocorrerá uma asserção e, em builds de versão, o parâmetro ACL
será ignorado.
CSacl::RemoveAce
Remove uma ACE (entrada de controle de acesso) específica do objeto CSacl
.
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.
CSacl::RemoveAllAces
Remove todas as ACEs (entradas de controle de acesso) contidas no objeto CSacl
.
void RemoveAllAces() throw();
Comentários
Remove todas as estruturas ACE
(se houver) no objeto CSacl
.
Confira também
Classe CAcl
ACLs
ACEs
Visão geral da aula
Funções globais de segurança