Condividi tramite


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

System.Security.AccessControl

Tecnologie correlate

Sicurezza in .NET Framework

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

CryptoKeySecurity

CryptoKeyAccessRule

CryptoKeyAuditRule

Directory

DirectorySecurity

FileSystemAccessRule

FileSystemAuditRule

Handle di attesa evento

EventWaitHandleSecurity

EventWaitHandleAccessRule

EventWaitHandleAuditRule

File

FileSecurity

FileSystemAccessRule

FileSystemAuditRule

Mutex

MutexSecurity

MutexAccessRule

MutexAuditRule

Chiavi del Registro di sistema

RegistrySecurity

RegistryAccessRule

RegistryAuditRule

Semafori

SemaphoreSecurity

SemaphoreAccessRule

SemaphoreAuditRule

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

CspKeyContainerInfo.CryptoKeySecurity

Directory

Directory.GetAccessControl

Directory.SetAccessControl

DirectoryInfo.GetAccessControl

DirectoryInfo.SetAccessControl

DirectoryInfo.Create

Handle di attesa evento

EventWaitHandle.GetAccessControl

EventWaitHandle.SetAccessControl

EventWaitHandle.EventWaitHandle

File

FileStream.GetAccessControl

FileStream.SetAccessControl

FileStream.FileStream

File.GetAccessControl

File.SetAccessControl

File.Create

FileInfo.GetAccessControl

FileInfo.SetAccessControl

Mutex

Mutex.GetAccessControl

Mutex.SetAccessControl

Mutex.Mutex

Chiavi del Registro di sistema

RegistryKey.GetAccessControl

RegistryKey.SetAccessControl

RegistryKey.CreateSubKey

Semafori

Semaphore.GetAccessControl

Semaphore.SetAccessControl

Semaphore.Semaphore

Vedere anche

Altre risorse

Cenni preliminari sulla tecnologia ACL

Sicurezza in .NET Framework