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