File.SetAccessControl(String, FileSecurity) Metodo

Definizione

Applica le voci dell'elenco di controllo di accesso (ACL) descritte da un oggetto FileSecurity al file specificato.

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

Parametri

path
String

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

fileSecurity
FileSecurity

Oggetto FileSecurity che descrive una voce ACL da applicare al file descritto dal parametro path.

Eccezioni

Si è verificato un errore di I/O durante l'apertura del file.

Il parametro path è null.

Impossibile trovare il file.

Il parametro path ha specificato un file di sola lettura.

-o-

Questa operazione non è supportata nella piattaforma corrente.

-o-

Il parametro path ha specificato una directory.

-o-

Il chiamante non dispone dell'autorizzazione richiesta.

Il parametro fileSecurity è null.

Commenti

Il metodo SetAccessControl applica le voci dell'elenco di controllo di accesso (ACL) a un file che rappresenta l'elenco ACL non crittografato.

Cautela

L'ACL specificato per il parametro fileSecurity sostituisce l'ACL esistente per il file. Per aggiungere autorizzazioni per un nuovo utente, usare il metodo GetAccessControl per ottenere l'elenco di controllo di accesso esistente, modificarlo e quindi usare SetAccessControl per applicarlo di nuovo al file.

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

Il metodo SetAccessControl viene mantenuto solo FileSecurity oggetti modificati dopo la creazione dell'oggetto. Se un oggetto FileSecurity non è stato modificato, non verrà salvato in modo permanente in un file. Pertanto, non è possibile recuperare un oggetto FileSecurity 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 FileSecurity dal file di origine.

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

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

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

  5. Impostare l'oggetto FileSecurity 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