Compartilhar via


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

CAcl

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