Riepilogo della tecnologia per gli ACL
In questo argomento vengono riepilogate le informazioni relative alle API gestite per gli elenchi di controllo di accesso discrezionali (DACL), gli elenchi di controllo di accesso di sistema (SACL) e le voci di controllo di accesso (ACE). È possibile utilizzare le classi dello spazio dei nomi System.Security.AccessControl per accedere a livello di codice a DACL, SACL e ACE per diversi tipi di risorse protette in .NET Framework 2.0 e versioni successive.
L'API gestita di ACL semplifica ulteriormente l'utilizzo degli ACL rispetto all'implementazione non gestita fornendo diverse classi per una gestione automatica dei dettagli. Nell'implementazione gestita non è ad esempio possibile creare DACL null ma non è necessario preoccuparsi che venga accidentalmente creato un DACL non protetto in seguito all'errato ordinamento delle ACE.
Parole chiave
Elenco di controllo di accesso (ACL), elenco di controllo di accesso discrezionale (DACL), elenco di controllo di accesso di sistema (SACL), voce di controllo di accesso (ACE), ACE di controllo
Spazi dei nomi
Tecnologie correlate
Cenni preliminari
Un elenco di controllo di accesso discrezionale (DACL), talvolta abbreviato in ACL, è un meccanismo utilizzato in Microsoft Windows NT e versioni successive per proteggere risorse quali file e cartelle. I DACL contengono più voci di controllo di accesso (ACE) che consentono di associare un oggetto Principal, in genere un account utente o un gruppo di account, a una regola che gestisce l'utilizzo della risorsa. I DACL e le ACE consentono di concedere o negare diritti alle risorse in base alle autorizzazioni che è possibile associare agli account utente. È ad esempio possibile creare una ACE e applicarla al DACL di un file per consentire solo all'amministratore di leggere il file.
Un elenco di controllo di accesso di sistema (SACL), talvolta definito ACE di controllo, è un meccanismo che gestisce i messaggi di controllo associati a una risorsa. Analogamente ai DACL, i SACL contengono ACE per la definizione delle regole di controllo per una data risorsa. Le ACE di controllo consentono di registrare i tentativi riusciti o non riusciti di accesso a una risorsa, tuttavia differiscono dalle ACE di accesso perché non controllano quali account possono utilizzare una risorsa. È ad esempio possibile creare una ACE e applicarla al SACL di un file per registrare tutti i tentativi riusciti di apertura del file.
Riepilogo delle classi di ACL
Nella tabella riportata di seguito sono elencate le principali classi utilizzabili per creare e modificare agevolmente gli ACL per diverse aree tecnologiche. Non si tratta di un elenco completo dello spazio dei nomi System.Security.AccessControl, ma solo di un elenco delle classi principali utilizzabili per la gestione degli ACL.
Area tecnologica |
Classi |
---|---|
Chiavi crittografiche |
|
Directory |
|
Handle di attesa evento |
|
File |
|
Mutex |
|
Chiavi del Registro di sistema |
|
Semafori |
Per ricercare nelle informazioni ACL esistenti una risorsa oppure applicare informazioni ACL modificate a una risorsa, è necessario utilizzare uno dei diversi metodi per l'accesso agli ACL di una risorsa esistente. Le classi riportate nella tabella precedente forniscono i metodi per costruire e modificare ACL ma non per eseguire ricerche o applicare ACL.
Ciascuna risorsa dispone di metodi associati per l'applicazione degli ACL durante la creazione di risorse, in genere un overload del costruttore, che recupera gli ACL per una risorsa esistente e li applica a tale risorsa.
Nella tabella riportata di seguito sono elencati i metodi utilizzati per ottenere e impostare gli ACL per le singole aree tecnologiche. Questi metodi sono inclusi in diversi spazi dei nomi esterni allo spazio dei nomi System.Security.AccessControl e fanno parte delle classi di livello elevato che rappresentano una risorsa specifica. Per ricercare, ad esempio, gli ACL per una directory specifica, utilizzare il metodo Directory.GetAccessControl per ottenere l'oggetto DirectorySecurity che incapsula i DACL e i SACL per la directory. Si noti che alcune risorse, quali file e directory, dispongono di diversi metodi equivalenti in altre classi che forniscono accesso agli ACL.
Area tecnologica |
Metodi per ottenere e impostare ACL |
---|---|
Chiavi crittografiche |
CspParameters.CryptoKeySecurity CspParameters.CspParameters CspParameters.CspParameters |
Directory |
DirectoryInfo.GetAccessControl |
Handle di attesa evento |
EventWaitHandle.GetAccessControl EventWaitHandle.SetAccessControl EventWaitHandle.EventWaitHandle |
File |
FileStream.FileStream |
Mutex |
Mutex.Mutex |
Chiavi del Registro di sistema |
|
Semafori |
Semaphore.Semaphore |