Condividi tramite


Directory.SetAccessControl(String, DirectorySecurity) Metodo

Definizione

Applica le voci dell'elenco di controllo di accesso (ACL) descritte da un oggetto DirectorySecurity alla directory specificata.

public:
 static void SetAccessControl(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member SetAccessControl : string * System.Security.AccessControl.DirectorySecurity -> unit
Public Shared Sub SetAccessControl (path As String, directorySecurity As DirectorySecurity)

Parametri

path
String

Directory da cui aggiungere o rimuovere voci dell'elenco di controllo di accesso.

directorySecurity
DirectorySecurity

Oggetto DirectorySecurity che descrive una voce ACL da applicare alla directory descritta dal parametro path.

Eccezioni

Il parametro directorySecurity è null.

Impossibile trovare la directory.

Il path non è valido.

Il processo corrente non ha accesso alla directory specificata da path.

-o-

Il processo corrente non dispone di privilegi sufficienti per impostare la voce ACL.

Commenti

Il metodo SetAccessControl applica le voci dell'elenco di controllo di accesso (ACL) a una directory che rappresenta l'elenco ACL non in scrittura.

Cautela

L'ACL specificato per il parametro directorySecurity sostituisce l'ACL esistente per la directory. Per aggiungere autorizzazioni per un nuovo utente, usare il metodo GetAccessControl per ottenere l'ACL esistente e modificarlo.

Un elenco di controllo di accesso descrive singoli utenti e gruppi che hanno o non hanno diritti per azioni specifiche nel file o nella directory specificata. Per altre informazioni, vedere Procedura: Aggiungere o rimuovere voci dell'elenco di controllo di accesso.

Il metodo SetAccessControl viene mantenuto solo DirectorySecurity oggetti modificati dopo la creazione dell'oggetto. Se un oggetto DirectorySecurity non è stato modificato, non verrà salvato in modo permanente in un file. Pertanto, non è possibile recuperare un oggetto DirectorySecurity da un file e riapplicare lo stesso oggetto a un altro file.

Per copiare le informazioni ACL da un file a un altro:

  1. Utilizzare il metodo GetAccessControl per recuperare l'oggetto DirectorySecurity dal file di origine.

  2. Creare un nuovo oggetto DirectorySecurity per il file di destinazione.

  3. Utilizzare il metodo GetSecurityDescriptorBinaryForm o GetSecurityDescriptorSddlForm dell'oggetto DirectorySecurity di origine per recuperare le informazioni ACL.

  4. Utilizzare il metodo SetSecurityDescriptorBinaryForm o SetSecurityDescriptorSddlForm per copiare le informazioni recuperate nel passaggio 3 nell'oggetto DirectorySecurity di destinazione.

  5. Impostare l'oggetto DirectorySecurity di destinazione sul file di destinazione usando il metodo SetAccessControl.

Negli ambienti NTFS, ReadAttributes e ReadExtendedAttributes vengono concessi all'utente se l'utente dispone di diritti di ListDirectory nella cartella padre. Per negare ReadAttributes e ReadExtendedAttributes, negare ListDirectory nella directory padre.

Si applica a

Vedi anche