Classe CDacl
Questa classe è un wrapper per una struttura DACL (elenco di controllo di accesso discrezionale).
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
class CDacl : public CAcl
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CDacl::CDacl | Costruttore. |
CDacl::~CDacl | Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CDacl::AddAllowedAce | Aggiunge un ace consentito (voce di controllo di accesso) all'oggetto CDacl . |
CDacl::AddDeniedAce | Aggiunge un ace negato all'oggetto CDacl . |
CDacl::GetAceCount | Restituisce il numero di ACL (voci di controllo di accesso) nell'oggetto CDacl . |
CDacl::RemoveAce | Rimuove un ace specifico (voce di controllo di accesso) dall'oggetto CDacl . |
CDacl::RemoveAllAces | Rimuove tutti gli ACL contenuti nell'oggetto CDacl . |
Operatori pubblici
Nome | Descrizione |
---|---|
CDacl::operator = | Operatore di assegnazione. |
Osservazioni:
Il descrittore di sicurezza di un oggetto può contenere un DACL. Un daCL contiene zero o più ACL (voci di controllo di accesso) che identificano gli utenti e i gruppi che possono accedere all'oggetto. Se un daCL è vuoto, ovvero contiene zero ACL, non viene concesso alcun accesso in modo esplicito, quindi l'accesso viene negato in modo implicito. Tuttavia, se il descrittore di sicurezza di un oggetto non dispone di un DACL, l'oggetto non è protetto e tutti hanno accesso completo.
Per recuperare il DACL di un oggetto, è necessario essere il proprietario dell'oggetto o avere READ_CONTROL accesso all'oggetto. Per modificare il DACL di un oggetto, è necessario avere WRITE_DAC accesso all'oggetto.
Usare i metodi di classe forniti per creare, aggiungere, rimuovere ed eliminare gli ACL dall'oggetto CDacl
. Vedere anche AtlGetDacl e AtlSetDacl.
Per un'introduzione al modello di controllo di accesso in Windows, vedere Controllo di accesso in Windows SDK.
Gerarchia di ereditarietà
CDacl
Requisiti
Intestazione: atlsecurity.h
CDacl::AddAllowedAce
Aggiunge un ace consentito (voce di controllo di accesso) all'oggetto CDacl
.
bool AddAllowedAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
BYTE AceFlags = 0) throw(...);
bool AddAllowedAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
BYTE AceFlags,
const GUID* pObjectType,
const GUID* pInheritedObjectType) throw(...);
Parametri
rSid
Oggetto CSid .
Maschera di accesso
Specifica la maschera dei diritti di accesso da consentire per l'oggetto specificato CSid
.
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 CDacl
, FALSE in caso di errore.
Osservazioni:
Un CDacl
oggetto contiene zero o più ACL (voci di controllo di accesso) che identificano gli utenti e i gruppi che possono accedere all'oggetto. Questo metodo aggiunge un ace che consente l'accesso all'oggetto CDacl
.
Vedere ACE_HEADER per una descrizione dei vari flag che possono essere impostati nel AceFlags
parametro .
CDacl::AddDeniedAce
Aggiunge un ace negato (voce di controllo di accesso) all'oggetto CDacl
.
bool AddDeniedAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
BYTE AceFlags = 0) throw(...);
bool AddDeniedAce(
const CSid& rSid,
ACCESS_MASK AccessMask,
BYTE AceFlags,
const GUID* pObjectType,
const GUID* pInheritedObjectType) throw(...);
Parametri
rSid
Oggetto CSid
.
Maschera di accesso
Specifica la maschera dei diritti di accesso da negare per l'oggetto specificato CSid
.
AceFlags
Set di flag di bit che controllano l'ereditarietà ACE. Il valore predefinito è 0 nella prima forma del metodo .
pObjectType
Tipo dell'oggetto.
pInheritedObjectType
Tipo di oggetto ereditato.
Valore restituito
Restituisce TRUE se l'ace viene aggiunto all'oggetto CDacl
, FALSE in caso di errore.
Osservazioni:
Un CDacl
oggetto contiene zero o più ACL (voci di controllo di accesso) che identificano gli utenti e i gruppi che possono accedere all'oggetto. Questo metodo aggiunge un ace che nega l'accesso all'oggetto CDacl
.
Vedere ACE_HEADER per una descrizione dei vari flag che possono essere impostati nel AceFlags
parametro .
CDacl::CDacl
Costruttore.
CDacl (const ACL& rhs) throw(...);
CDacl () throw();
Parametri
rhs
Struttura esistente ACL
(elenco di controllo di accesso).
Osservazioni:
L'oggetto CDacl
può essere creato facoltativamente utilizzando una struttura esistente ACL
. È importante notare che solo un DACL (elenco di controllo di accesso discrezionale) e non un elenco SACL (elenco di controllo di accesso di sistema) deve essere passato come parametro. Nelle compilazioni di debug, il passaggio di un sacl causerà un'istruzione ASSERT. Nelle build di rilascio, il passaggio di un sacl causerà l'ignorare gli ACL (voci di controllo di accesso) nell'elenco di controllo di accesso e non si verificherà alcun errore.
CDacl::~CDacl
Distruttore.
~CDacl () throw();
Osservazioni:
Il distruttore libera tutte le risorse acquisite dall'oggetto, inclusi tutti gli ACL (voci di controllo di accesso) usando CDacl::RemoveAllAces.
CDacl::GetAceCount
Restituisce il numero di ACL (voci di controllo di accesso) nell'oggetto CDacl
.
UINT GetAceCount() const throw();
Valore restituito
Restituisce il numero di ACL contenuti nell'oggetto CDacl
.
CDacl::operator =
Operatore di assegnazione.
CDacl& operator= (const ACL& rhs) throw(...);
Parametri
rhs
ACL (elenco di controllo di accesso) da assegnare all'oggetto esistente.
Valore restituito
Restituisce un riferimento all'oggetto aggiornato CDacl
.
Osservazioni:
È necessario assicurarsi di passare solo un daCL (elenco di controllo di accesso discrezionale) a questa funzione. Il passaggio di un elenco sacl (elenco di controllo di accesso di sistema) a questa funzione causerà un'istruzione ASSERT nelle compilazioni di debug, ma non genererà alcun errore nelle build di rilascio.
CDacl::RemoveAce
Rimuove un ace specifico (voce di controllo di accesso) dall'oggetto CDacl
.
void RemoveAce(UINT nIndex) throw();
Parametri
nIndex
Indicizzare la voce ACE da rimuovere.
Osservazioni:
Questo metodo è derivato da CAtlArray::RemoveAt.
CDacl::RemoveAllAces
Rimuove tutti gli ACL (voci di controllo di accesso) contenuti nell'oggetto CDacl
.
void RemoveAllAces() throw();
Osservazioni:
Rimuove ogni ACE
struttura (voce di controllo di accesso) (se presente) nell'oggetto CDacl
.
Vedi anche
Esempio di sicurezza
Classe CAcl
Acl
Assi
Cenni preliminari sulla classe
Funzioni globali di sicurezza