Partilhar via


Classe CSacl

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 SACL (lista de controlo de acesso ao sistema).

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

class CSacl : public CAcl

Membros

Construtores Públicos

Nome Description
CSacl::CSacl O construtor.
CSacl::~CSacl O destruidor.

Métodos Públicos

Nome Description
CSacl::AddAuditAce Adiciona uma entrada de controlo de acesso de auditoria (ACE) ao CSacl objeto.
CSacl::GetAceCount Devolve o número de entradas de controlo de acesso (ACEs) no CSacl objeto.
CSacl::RemoveAce Remove uma ACE específica (entrada de controlo de acesso) do CSacl objeto.
CSacl::RemoveAllAces Remove todos os ACEs contidos no CSacl objeto.

Operadores Públicos

Nome Description
CSacl::operator = Operador de atribuição.

Observações

Um SACL contém entradas de controlo de acesso (ACEs) que especificam os tipos de tentativas de acesso que geram registos de auditoria no registo de eventos de segurança de um controlador de domínio. Note que um SACL gera entradas de registo apenas no controlador de domínio onde ocorreu a tentativa de acesso, e não em todos os controladores de domínio que contenham uma réplica do objeto.

Para definir ou recuperar o SACL no descritor de segurança de um objeto, o privilégio SE_SECURITY_NAME deve estar ativado no token de acesso da thread solicitante. O grupo de administradores tem este privilégio concedido por defeito, e pode ser concedido a outros utilizadores ou grupos. Ter o privilégio concedido não é tudo o que é necessário: antes de a operação definida pelo privilégio poder ser realizada, o privilégio deve estar ativado no token de acesso de segurança para que tenha efeito. O modelo permite que privilégios sejam ativados apenas para operações específicas do sistema, e depois desativados quando deixam de ser necessários. Veja AtlGetSacl e AtlSetSacl para exemplos de ativação de SE_SECURITY_NAME.

Use os métodos de classe fornecidos para adicionar, remover, criar e eliminar ACEs do SACL objeto. Ver também AtlGetSacl e AtlSetSacl.

Para uma introdução ao modelo de controlo de acesso no Windows, veja Controlo de Acesso no SDK do Windows.

Hierarquia de herança

CAcl

CSacl

Requerimentos

Cabeçalho: atlsecurity.h

CSacl::AddAuditAce

Adiciona uma entrada de controlo de acesso de auditoria (ACE) ao CSacl objeto.

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 ser auditada para o objeto especificado CSid .

bSucesso
Especifica se as tentativas de acesso permitidas devem ser auditadas. Defina este flag como true para permitir a auditoria; caso contrário, define-o como falso.

bFalha
Especifica se as tentativas de acesso negadas devem ser auditadas. Defina este flag como true para permitir a auditoria; caso contrário, define-o como falso.

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 CSacl objeto, FALSE em caso de falha.

Observações

Um objeto contém entradas de controlo de acesso (ACEs) que especificam os tipos de tentativas de acesso que geram registos CSacl de auditoria no registo de eventos de segurança. Este método adiciona tal ACE ao CSacl objeto.

Veja ACE_HEADER para uma descrição das várias bandeiras que podem ser definidas no parâmetro AceFlags .

CSacl::CSacl

O construtor.

CSacl() throw();
CSacl(const ACL& rhs) throw(...);

Parâmetros

RHS
Uma estrutura existente ACL (lista de controlo de acesso).

Observações

O CSacl objeto pode ser criado opcionalmente usando uma estrutura existente ACL . Certifique-se de que este parâmetro é uma lista de controlo de acesso do sistema (SACL) e não uma lista de controlo de acesso discricionária (DACL). Em builds de depuração, se for fornecido um DACL, ocorrerá uma asserção. Nas versões de lançamento, quaisquer entradas de um DACL são ignoradas.

CSacl::~CSacl

O destruidor.

~CSacl() throw();

Observações

O destruidor liberta quaisquer recursos adquiridos pelo objeto, incluindo todas as entradas de controlo de acesso (ACEs).

CSacl::GetAceCount

Devolve o número de entradas de controlo de acesso (ACEs) no CSacl objeto.

UINT GetAceCount() const throw();

Valor de retorno

Devolve o número de ACEs contidos no CSacl objeto.

CSacl::operator =

Operador de atribuição.

CSacl& operator=(const ACL& rhs) throw(...);

Parâmetros

RHS
A ACL (lista de controlo de acesso) a atribuir ao objeto existente.

Valor de retorno

Devolve uma referência ao objeto atualizado CSacl . Certifique-se de que o ACL parâmetro é realmente uma lista de controlo de acesso do sistema (SACL) e não uma lista de controlo de acesso discricionária (DACL). Nas builds de depuração ocorre uma asserção, e nas builds de release o ACL parâmetro é ignorado.

CSacl::RemoveAce

Remove uma ACE específica (entrada de controlo de acesso) do CSacl 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.

CSacl::RemoveAllAces

Remove todas as entradas de controlo de acesso (ACEs) contidas no CSacl objeto.

void RemoveAllAces() throw();

Observações

Remove todas as ACE estruturas (se existirem) no CSacl objeto.

Consulte também

Classe CAcl
ACLs
ACEs
Visão geral da classe
Funções Globais de Segurança