Condividi tramite


CSecurityDesc::SetDacl

Imposta le informazioni in un elenco di controllo di accesso discrezionale (DACL). Se un DACL è già presente nel descrittore di sicurezza, viene sostituito.

inline void SetDacl( 
   bool bPresent = true, 
   bool bDefaulted = false  
) throw(...); 
inline void SetDacl( 
   const CDacl & Dacl, 
   bool bDefaulted = false  
) throw(...);

Parametri

  • DACL
    Riferimento a un oggetto CDacl che specifica il DACL per il descrittore di sicurezza. Questo parametro non deve essere NULL. Per impostare un DACL NULL nel descrittore di sicurezza, il primo form del metodo deve essere utilizzato con bPresent impostato su false.

  • bPresent
    Specifica un flag che indica la presenza di un DACL del descrittore di sicurezza. Se questo parametro è true, il metodo imposta il flag di SE_DACL_PRESENT nella struttura SECURITY_DESCRIPTOR_CONTROL e utilizza i valori dei parametri bDefaulted e di DACL . Se è false, il metodo rimuove il flag di SE_DACL_PRESENT e bDefaulted viene ignorato.

  • bDefaulted
    Specifica un flag che indica l'origine del DACL. Se questo flag è true, il DACL è stato recuperato da un meccanismo predefinito. Se false, il DACL è stato specificato in modo esplicito da un utente. Il metodo inserisce questo valore nel flag di SE_DACL_DEFAULTED della struttura SECURITY_DESCRIPTOR_CONTROL. Se questo parametro non viene specificato, il flag di SE_DACL_DEFAULTED viene cancellato.

Valore restituito

Restituisce true se l'operazione ha esito positivo, false in caso di esito negativo.

Note

Esiste una differenza fondamentale tra un DACL vuoto e non esistente. Quando un DACL è vuoto, non contiene voci di controllo di accesso e nessun diritto di accedere in modo esplicito è stata concessa. Di conseguenza, l'accesso all'oggetto in modo implicito negato. Quando un oggetto non ha DACL, invece, non sicurezza viene assegnata all'oggetto e tutte le richieste di accesso è consentita.

Requisiti

Header: atlsecurity.h

Vedere anche

Riferimenti

CSecurityDesc Class

SetSecurityDescriptorDacl

CSecurityDesc::SetControl

CSecurityDesc::SetGroup

CSecurityDesc::SetOwner

CSecurityDesc::SetSacl

CSecurityDesc::GetDacl