Condividi tramite


Classe CSacl

Questa classe è un wrapper per una struttura SACL (system access-control list).

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

class CSacl : public CAcl

Membri

Costruttori pubblici

Nome Descrizione
CSacl::CSacl Costruttore.
CSacl::~CSacl Distruttore.

Metodi pubblici

Nome Descrizione
CSacl::AddAuditAce Aggiunge una voce di controllo di accesso (ACE) all'oggetto CSacl .
CSacl::GetAceCount Restituisce il numero di voci di controllo di accesso (ACL) nell'oggetto CSacl .
CSacl::RemoveAce Rimuove un ace specifico (voce di controllo di accesso) dall'oggetto CSacl .
CSacl::RemoveAllAces Rimuove tutti gli ACL contenuti nell'oggetto CSacl .

Operatori pubblici

Nome Descrizione
CSacl::operator = Operatore di assegnazione.

Osservazioni:

Un sacl contiene voci di controllo di accesso (ACL) che specificano i tipi di tentativi di accesso che generano record di controllo nel registro eventi di sicurezza di un controller di dominio. Si noti che un sacl genera voci di log solo nel controller di dominio in cui si è verificato il tentativo di accesso, non in ogni controller di dominio che contiene una replica dell'oggetto.

Per impostare o recuperare sacl nel descrittore di sicurezza di un oggetto, il privilegio SE_SECURITY_NAME deve essere abilitato nel token di accesso del thread richiedente. Il gruppo administrators ha questo privilegio concesso per impostazione predefinita e può essere concesso ad altri utenti o gruppi. Avere concesso il privilegio non è tutto ciò che è necessario: prima che l'operazione definita dal privilegio possa essere eseguita, il privilegio deve essere abilitato nel token di accesso di sicurezza per rendere effettivo. Il modello consente l'abilitazione dei privilegi solo per operazioni di sistema specifiche e quindi disabilitate quando non sono più necessarie. Per esempi di abilitazione di SE_SECURITY_NAME, vedere AtlGetSacl e AtlSetSacl .

Usare i metodi di classe forniti per aggiungere, rimuovere, creare ed eliminare gli ACL dall'oggetto SACL . Vedere anche AtlGetSacl e AtlSetSacl.

Per un'introduzione al modello di controllo di accesso in Windows, vedere Controllo di accesso in Windows SDK.

Gerarchia di ereditarietà

CAcl

CSacl

Requisiti

Intestazione: atlsecurity.h

CSacl::AddAuditAce

Aggiunge una voce di controllo di accesso (ACE) all'oggetto 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(...);

Parametri

rSid
Oggetto CSid .

Maschera di accesso
Specifica la maschera dei diritti di accesso da controllare per l'oggetto specificato CSid .

bSuccess
Specifica se i tentativi di accesso consentiti devono essere controllati. Impostare questo flag su true per abilitare il controllo; in caso contrario, impostarlo su false.

bFailure
Specifica se i tentativi di accesso negato devono essere controllati. Impostare questo flag su true per abilitare il controllo; in caso contrario, impostarlo su false.

AceFlags
Set di flag di bit che controllano l'ereditarietà ACE.

pObjectType
Tipo dell'oggetto.

pInheritedObjectType
Tipo di oggetto ereditato.

Valore restituito

Restituisce TRUE se l'ace viene aggiunto all'oggetto CSacl , FALSE in caso di errore.

Osservazioni:

Un CSacl oggetto contiene voci di controllo di accesso (ACL) che specificano i tipi di tentativi di accesso che generano record di controllo nel registro eventi di sicurezza. Questo metodo aggiunge tale ace all'oggetto CSacl .

Vedere ACE_HEADER per una descrizione dei vari flag che possono essere impostati nel parametro AceFlags .

CSacl::CSacl

Costruttore.

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

Parametri

rhs
Struttura esistente ACL (elenco di controllo di accesso).

Osservazioni:

L'oggetto CSacl può essere creato facoltativamente utilizzando una struttura esistente ACL . Assicurarsi che questo parametro sia un elenco di controllo di accesso di sistema (SACL) e non un elenco di controllo di accesso discrezionale (DACL). Nelle compilazioni di debug, se viene fornita un'asserzione DACL, si verificherà un'asserzione. Nelle build di rilascio tutte le voci di un daCL vengono ignorate.

CSacl::~CSacl

Distruttore.

~CSacl() throw();

Osservazioni:

Il distruttore libera tutte le risorse acquisite dall'oggetto, incluse tutte le voci di controllo di accesso (ACL).

CSacl::GetAceCount

Restituisce il numero di voci di controllo di accesso (ACL) nell'oggetto CSacl .

UINT GetAceCount() const throw();

Valore restituito

Restituisce il numero di ACL contenuti nell'oggetto CSacl .

CSacl::operator =

Operatore di assegnazione.

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

Parametri

rhs
Oggetto ACL (elenco di controllo di accesso) da assegnare all'oggetto esistente.

Valore restituito

Restituisce un riferimento all'oggetto aggiornato CSacl . Assicurarsi che il ACL parametro sia effettivamente un elenco di controllo di accesso di sistema (SACL) e non un elenco di controllo di accesso discrezionale (DACL). Nelle compilazioni di debug si verificherà un'asserzione e nelle build di rilascio il ACL parametro verrà ignorato.

CSacl::RemoveAce

Rimuove un ace specifico (voce di controllo di accesso) dall'oggetto CSacl .

void RemoveAce(UINT nIndex) throw();

Parametri

nIndex
Indicizzare la voce ACE da rimuovere.

Osservazioni:

Questo metodo è derivato da CAtlArray::RemoveAt.

CSacl::RemoveAllAces

Rimuove tutte le voci di controllo di accesso (ACL) contenute nell'oggetto CSacl .

void RemoveAllAces() throw();

Osservazioni:

Rimuove ogni ACE struttura (se presente) nell'oggetto CSacl .

Vedi anche

Classe CAcl
Acl
Assi
Cenni preliminari sulla classe
Funzioni globali di sicurezza