Condividi tramite


FileSystemRights Enumerazione

Definizione

Definisce i diritti di accesso da utilizzare durante la creazione di regole di accesso e controllo.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

public enum class FileSystemRights
[System.Flags]
public enum FileSystemRights
[System.Flags]
[System.Security.SecurityCritical]
public enum FileSystemRights
[<System.Flags>]
type FileSystemRights = 
[<System.Flags>]
[<System.Security.SecurityCritical>]
type FileSystemRights = 
Public Enum FileSystemRights
Ereditarietà
FileSystemRights
Attributi

Campi

AppendData 4

Specifica il diritto di accodare i dati alla fine di un file.

ChangePermissions 262144

Specifica il diritto di modificare le regole di sicurezza e controllo associate a un file o a una cartella.

CreateDirectories 4

Specifica il diritto di creare una cartella Questo diritto richiede il valore Synchronize.

CreateFiles 2

Specifica il diritto di creare un file. Questo diritto richiede il valore Synchronize.

Delete 65536

Specifica il diritto di eliminare una cartella o un file.

DeleteSubdirectoriesAndFiles 64

Specifica il diritto di eliminare una cartella e tutti i file contenuti all'interno di tale cartella.

ExecuteFile 32

Specifica il diritto di eseguire un file dell'applicazione.

FullControl 2032127

Specifica il diritto di esercitare il controllo completo su una cartella o un file e di modificare le regole di controllo e controllo di accesso. Questo valore rappresenta il diritto di eseguire qualsiasi operazione con un file ed è la combinazione di tutti i diritti in questa enumerazione.

ListDirectory 1

Specifica il diritto di leggere il contenuto di una directory.

Modify 197055

Specifica il diritto di leggere, scrivere, elencare il contenuto della cartella, eliminare cartelle e file ed eseguire i file dell'applicazione. Questo diritto include il diritto di ReadAndExecute, il diritto di Write e il diritto di Delete.

Read 131209

Specifica il diritto di aprire e copiare cartelle o file come di sola lettura. Questo diritto include il diritto di ReadData, ReadExtendedAttributes diritto, ReadAttributes diritto e ReadPermissions diritto.

ReadAndExecute 131241

Specifica il diritto di aprire e copiare cartelle o file come di sola lettura e di eseguire i file dell'applicazione. Questo diritto include il diritto di Read e il diritto di ExecuteFile.

ReadAttributes 128

Specifica il diritto di aprire e copiare gli attributi del file system da una cartella o da un file. Ad esempio, questo valore specifica il diritto di visualizzare la data di creazione o modifica del file. Ciò non include il diritto di leggere i dati, gli attributi estesi del file system o le regole di accesso e controllo.

ReadData 1

Specifica il diritto di aprire e copiare un file o una cartella. Ciò non include il diritto di leggere gli attributi del file system, gli attributi estesi del file system o le regole di accesso e controllo.

ReadExtendedAttributes 8

Specifica il diritto di aprire e copiare gli attributi del file system esteso da una cartella o da un file. Ad esempio, questo valore specifica il diritto di visualizzare le informazioni sull'autore e sul contenuto. Ciò non include il diritto di leggere dati, attributi del file system o regole di accesso e controllo.

ReadPermissions 131072

Specifica il diritto di aprire e copiare le regole di accesso e controllo da una cartella o da un file. Ciò non include il diritto di leggere i dati, gli attributi del file system e gli attributi estesi del file system.

Synchronize 1048576

Specifica se l'applicazione può attendere la sincronizzazione di un handle di file con il completamento di un'operazione di I/O. Questo valore viene impostato automaticamente quando si consente l'accesso e viene escluso automaticamente quando si nega l'accesso.

TakeOwnership 524288

Specifica il diritto di modificare il proprietario di una cartella o di un file. Si noti che i proprietari di una risorsa hanno accesso completo a tale risorsa.

Traverse 32

Specifica il diritto di elencare il contenuto di una cartella e di eseguire applicazioni contenute in tale cartella.

Write 278

Specifica il diritto di creare cartelle e file e di aggiungere o rimuovere dati dai file. Questo diritto include il diritto di WriteData, AppendData diritto, WriteExtendedAttributes diritto e WriteAttributes diritto.

WriteAttributes 256

Specifica il diritto di aprire e scrivere attributi del file system in una cartella o in un file. Ciò non include la possibilità di scrivere dati, attributi estesi o regole di accesso e controllo.

WriteData 2

Specifica il diritto di aprire e scrivere in un file o in una cartella. Ciò non include il diritto di aprire e scrivere attributi del file system, attributi estesi del file system o regole di accesso e controllo.

WriteExtendedAttributes 16

Specifica il diritto di aprire e scrivere attributi del file system esteso in una cartella o in un file. Ciò non include la possibilità di scrivere dati, attributi o regole di accesso e controllo.

Esempio

Nell'esempio seguente viene utilizzata l'enumerazione FileSystemRights per specificare una regola di accesso e quindi la regola di accesso viene rimossa da un file. Per eseguire questo esempio, è necessario specificare un account utente o gruppo valido.

using System;
using System.IO;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                string fileName = "test.xml";

                Console.WriteLine($"Adding access control entry for {fileName}");

                // Add the access control entry to the file.
                AddFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine($"Removing access control entry from {fileName}");

                // Remove the access control entry from the file.
                RemoveFileSecurity(fileName, @"DomainName\AccountName",
                    FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Done.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }

        // Adds an ACL entry on the specified file for the specified account.
        public static void AddFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(fSecurity);
        }

        // Removes an ACL entry on the specified file for the specified account.
        public static void RemoveFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {
            FileInfo fileInfo = new(fileName);
            FileSecurity fSecurity = fileInfo.GetAccessControl();

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            fileInfo.SetAccessControl(fSecurity);
        }
    }
}
Imports System.IO
Imports System.Security.AccessControl

Module FileExample

    Sub Main()
        Try
            Dim fileName As String = "test.xml"

            Console.WriteLine("Adding access control entry for " & fileName)

            ' Add the access control entry to the file.
            AddFileSecurity(fileName, "DomainName\AccountName",
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Removing access control entry from " & fileName)

            ' Remove the access control entry from the file.
            RemoveFileSecurity(fileName, "DomainName\AccountName",
                FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Done.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

    End Sub

    ' Adds an ACL entry on the specified file for the specified account.
    Sub AddFileSecurity(ByVal fileName As String, ByVal account As String,
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub

    ' Removes an ACL entry on the specified file for the specified account.
    Sub RemoveFileSecurity(ByVal fileName As String, ByVal account As String,
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        Dim fileInfo As New FileInfo(fileName)
        Dim fSecurity As FileSecurity = fileInfo.GetAccessControl()

        ' Remove the FileSystemAccessRule from the security settings. 
        fSecurity.RemoveAccessRule(New FileSystemAccessRule(account,
            rights, controlType))

        ' Set the new access settings.
        fileInfo.SetAccessControl(fSecurity)

    End Sub
End Module

Commenti

L'enumerazione FileSystemRights specifica quali azioni del file system sono consentite per un account utente specifico e quali azioni del file system vengono controllate per un account utente specifico.

Utilizzare l'enumerazione FileSystemRights quando si crea una regola di accesso con la classe FileSystemAccessRule o quando si crea una regola di controllo con la classe FileSystemAuditRule.

Questa enumerazione contiene diversi valori granulari dei diritti di sistema e diversi valori che sono una combinazione di tali valori granulari. È più semplice usare i valori di combinazione, ad esempio FullControl, Reade Write, anziché specificare separatamente ogni valore del componente.

I diritti di CreateDirectories e CreateFiles richiedono il diritto di Synchronize. Se non si imposta in modo esplicito il valore Synchronize durante la creazione di un file o di una directory, viene impostato automaticamente.

Si applica a