Condividi tramite


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à

CAcl

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