Classe CAcl

Questa classe è un wrapper per una ACL struttura (elenco di controllo di accesso).

Importante

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

Sintassi

class CAcl

Membri

Typedef pubblici

Nome Descrizione
CAcl::CAccessMaskArray Matrice di ACCESS_MASKs.
CAcl::CAceFlagArray Matrice di BYTEs.
CAcl::CAceTypeArray Matrice di BYTEs.

Costruttori pubblici

Nome Descrizione
CAcl::CAcl Costruttore.
CAcl::~CAcl Distruttore.

Metodi pubblici

Nome Descrizione
CAcl::GetAceCount Restituisce il numero di oggetti ace (Access Control Entry).
CAcl::GetAclEntries Recupera le voci dell'elenco di controllo di accesso (ACL) dall'oggetto CAcl .
CAcl::GetAclEntry Recupera tutte le informazioni relative a una voce in un CAcl oggetto .
CAcl::GetLength Restituisce la lunghezza dell'ACL.
CAcl::GetPACL Restituisce un PACL (puntatore a un ACL).
CAcl::IsEmpty Verifica l'oggetto CAcl per le voci.
CAcl::IsNull Restituisce lo stato dell'oggetto CAcl .
CAcl::RemoveAce Rimuove un ace specifico (voce di controllo di accesso) dall'oggetto CAcl .
CAcl::RemoveAces Rimuove tutti gli ACL (voci di controllo di accesso) dall'oggetto CAcl che si applicano all'oggetto specificato CSid.
CAcl::SetEmpty Contrassegna l'oggetto CAcl come vuoto.
CAcl::SetNull Contrassegna l'oggetto CAcl come NULL.

Operatori pubblici

Nome Descrizione
CAcl::operator const ACL * Esegue il cast di un CAcl oggetto in una ACL struttura.
CAcl::operator = Operatore di assegnazione.

Osservazioni:

La ACL struttura è l'intestazione di un elenco di controllo di accesso (elenco di controllo di accesso). Un ACL include un elenco sequenziale di zero o più ACL (voci di controllo di accesso). I singoli ACL in un ACL sono numerati da 0 a n-1, dove n è il numero di ACL. Quando si modifica un ACL, un'applicazione fa riferimento a una voce di controllo di accesso (ACE) all'interno dell'ACL in base al relativo indice.

Esistono due tipi di ACL:

  • Discrezionale

  • System

Un ACL discrezionale è controllato dal proprietario di un oggetto o da chiunque abbia concesso WRITE_DAC l'accesso all'oggetto. Specifica l'accesso a utenti e gruppi specifici a un oggetto . Ad esempio, il proprietario di un file può usare un elenco di controllo di accesso discrezionale per controllare quali utenti e gruppi possono e non possono avere accesso al file.

Un oggetto può anche avere informazioni di sicurezza a livello di sistema associate, sotto forma di ACL di sistema controllato da un amministratore di sistema. Un ACL di sistema può consentire all'amministratore di sistema di controllare qualsiasi tentativo di ottenere l'accesso a un oggetto.

Per altri dettagli, vedere la discussione sull'elenco di controllo di accesso in Windows SDK.

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

Requisiti

Intestazione: atlsecurity.h

CAcl::CAccessMaskArray

Matrice di oggetti ACCESS_MASK.

typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;

Osservazioni:

Questo typedef specifica il tipo di matrice che può essere usato per archiviare i diritti di accesso usati nelle voci di controllo di accesso (ACL).

CAcl::CAceFlagArray

Matrice di BYTEs.

typedef CAtlArray<BYTE> CAceFlagArray;

Osservazioni:

Questo typedef specifica il tipo di matrice usato per definire i flag di controllo di accesso (ACE) specifici del tipo. Per l'elenco completo dei flag possibili, vedere la definizione di ACE_HEADER .

CAcl::CAceTypeArray

Matrice di BYTEs.

typedef CAtlArray<BYTE> CAceTypeArray;

Osservazioni:

Questo typedef specifica il tipo di matrice utilizzato per definire la natura degli oggetti ace (Access Control Entry), ad esempio ACCESS_ALLOWED_ACE_TYPE o ACCESS_DENIED_ACE_TYPE. Vedere la definizione di ACE_HEADER per l'elenco completo dei tipi possibili.

CAcl::CAcl

Costruttore.

CAcl() throw();
CAcl(const CAcl& rhs) throw(...);

Parametri

rhs
Oggetto CAcl esistente.

Osservazioni:

L'oggetto CAcl può essere creato facoltativamente utilizzando un oggetto esistente CAcl .

CAcl::~CAcl

Distruttore.

virtual ~CAcl() throw();

Osservazioni:

Il distruttore libera tutte le risorse acquisite dall'oggetto .

CAcl::GetAceCount

Restituisce il numero di oggetti ace (Access Control Entry).

virtual UINT GetAceCount() const throw() = 0;

Valore restituito

Restituisce il numero di voci ACE nell'oggetto CAcl .

CAcl::GetAclEntries

Recupera le voci dell'elenco di controllo di accesso (ACL) dall'oggetto CAcl .

void GetAclEntries(
    CSid::CSidArray* pSids,
    CAccessMaskArray* pAccessMasks = NULL,
    CAceTypeArray* pAceTypes = NULL,
    CAceFlagArray* pAceFlags = NULL) const throw(...);

Parametri

pSids
Puntatore a una matrice di oggetti CSid .

pAccessMasks
Maschere di accesso.

pAceTypes
Tipi di voce di controllo di accesso (ACE).

pAceFlags
Flag ACE.

Osservazioni:

Questo metodo riempie i parametri della matrice con i dettagli di ogni oggetto ACE contenuto nell'oggetto CAcl . Usare NULL quando i dettagli per tale matrice specifica non sono necessari.

Il contenuto di ogni matrice corrisponde l'uno all'altro, ovvero il primo elemento della CAccessMaskArray matrice corrisponde al primo elemento della CSidArray matrice e così via.

Per altre informazioni sui tipi e i flag ACE, vedere ACE_HEADER .

CAcl::GetAclEntry

Recupera tutte le informazioni su una voce in un elenco di controllo di accesso (ACL).

void GetAclEntry(
    UINT nIndex,
    CSid* pSid,
    ACCESS_MASK* pMask = NULL,
    BYTE* pType = NULL,
    BYTE* pFlags = NULL,
    GUID* pObjectType = NULL,
    GUID* pInheritedObjectType = NULL) const throw(...);

Parametri

nIndex
Indicizzare la voce ACL da recuperare.

Psid
Oggetto CSid a cui si applica la voce ACL.

pMask
Maschera che specifica le autorizzazioni per concedere o negare l'accesso.

pType
Tipo ACE.

pFlags
Flag ACE.

pObjectType
Tipo dell'oggetto. Questa opzione verrà impostata su GUID_NULL se il tipo di oggetto non è specificato nell'ace o se l'ace non è object ace.

pInheritedObjectType
Tipo di oggetto ereditato. Questa opzione verrà impostata su GUID_NULL se il tipo di oggetto ereditato non è specificato nell'ace o se l'ace non è object ACE.

Osservazioni:

Questo metodo recupererà tutte le informazioni su un singolo ace, fornendo più informazioni rispetto a CAcl::GetAclEntries .

Per altre informazioni sui tipi e i flag ACE, vedere ACE_HEADER .

CAcl::GetLength

Restituisce la lunghezza dell'elenco di controllo di accesso (ACL).

UINT GetLength() const throw();

Valore restituito

Restituisce la lunghezza richiesta in byte necessaria per contenere la ACL struttura.

CAcl::GetPACL

Restituisce un puntatore a un elenco di controllo di accesso (ACL).

const ACL* GetPACL() const throw(...);

Valore restituito

Restituisce un puntatore alla ACL struttura.

CAcl::IsEmpty

Verifica l'oggetto CAcl per le voci.

bool IsEmpty() const throw();

Osservazioni:

Restituisce TRUE se l'oggetto CAcl non è NULL e non contiene voci. Restituisce FALSE se l'oggetto CAcl è NULL o contiene almeno una voce.

CAcl::IsNull

Restituisce lo stato dell'oggetto CAcl .

bool IsNull() const throw();

Valore restituito

Restituisce TRUE se l'oggetto CAcl è NULL, FALSE in caso contrario.

CAcl::operator const ACL *

Esegue il cast di un CAcl oggetto a una ACL struttura (elenco di controllo di accesso).

operator const ACL *() const throw(...);

Osservazioni:

Restituisce l'indirizzo della ACL struttura.

CAcl::operator =

Operatore di assegnazione.

CAcl& operator= (const CAcl& rhs) throw(...);

Parametri

rhs
Oggetto CAcl da assegnare all'oggetto esistente.

Valore restituito

Restituisce un riferimento all'oggetto aggiornato CAcl .

CAcl::RemoveAce

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

void RemoveAce(UINT nIndex) throw();

Parametri

nIndex
Indicizzare la voce ACE da rimuovere.

Osservazioni:

Questo metodo è derivato da CAtlArray::RemoveAt.

CAcl::RemoveAces

Rimuove tutti gli ACL (voci di controllo di accesso) dall'oggetto CAcl che si applicano all'oggetto specificato CSid.

bool RemoveAces(const CSid& rSid) throw(...)

Parametri

rSid
Riferimento a un oggetto CSid.

CAcl::SetEmpty

Contrassegna l'oggetto CAcl come vuoto.

void SetEmpty() throw();

Osservazioni:

CAcl Può essere impostato su vuoto o su NULL: i due stati sono distinti.

CAcl::SetNull

Contrassegna l'oggetto CAcl come NULL.

void SetNull() throw();

Osservazioni:

CAcl Può essere impostato su vuoto o su NULL: i due stati sono distinti.

Vedi anche

Cenni preliminari sulla classe
Funzioni globali di sicurezza