Condividi tramite


Recupero dell'elenco DACL di un oggetto

Il descrittore di sicurezza di un oggetto può contenere un elenco di controllo di accesso discrezionale (DACL). Un daCL contiene zero o più voci di controllo di accesso (ACL) 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 ottenere e impostare l'elenco DACL di un oggetto directory, usare l'interfaccia IADsSecurityDescriptor . Usando C++, il metodo IADsSecurityDescriptor::get_DiscretionaryAcl restituisce un puntatore IDispatch. Chiamare QueryInterface sul puntatore IDispatch per ottenere un'interfaccia IADsAccessControlList e usare i metodi su tale interfaccia per accedere ai singoli ACL nell'elenco di controllo di accesso. La procedura per la modifica di un daCL è descritta in Impostazione dei diritti di accesso per un oggetto.

Per enumerare gli ACL, usare il metodo IADsAccessControlList::get__NewEnum . Il metodo restituisce un puntatore IUnknown. Chiamare QueryInterface sul puntatore IUnknown per ottenere un'interfaccia IEnumVARIANT. Utilizzare il metodo IEnumVARIANT::Next per enumerare gli ACL. Ogni ACE viene restituito come VARIANT contenente un puntatore IDispatch (il membro vt è VT_DISPATCH). Chiamare QueryInterface sul puntatore IDispatch per ottenere un'interfaccia IADsAccessControlEntry per ACE. È possibile utilizzare i metodi dell'interfaccia IADsAccessControlEntry per impostare o recuperare i componenti di un ace.

Per altre informazioni su DACLs e ACL, vedere gli argomenti seguenti in Platform Software Development Kit (SDK).