FileSystemRights Enumerazione

Definizione

Definisce i diritti di accesso da utilizzare quando si creano regole di accesso e di 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 aggiungere dati alla fine di un file.

ChangePermissions 262144

Specifica il diritto di modificare le regole di sicurezza e di 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 qualsiasi file contenga.

ExecuteFile 32

Specifica il diritto di eseguire il file di un'applicazione.

FullControl 2032127

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

ListDirectory 1

Specifica il diritto di leggere il contenuto di una directory.

Modify 197055

Specifica il diritto di leggere, scrivere e visualizzare un elenco del contenuto di una cartella, di eliminare cartelle e file e di eseguire file di applicazioni. Questo diritto comprende il diritto ReadAndExecute, il diritto Write e il diritto Delete.

Read 131209

Specifica il diritto di aprire e copiare delle cartelle o dei file in sola lettura. Questo diritto comprende il diritto ReadData, il diritto ReadExtendedAttributes, il diritto ReadAttributes e il diritto ReadPermissions.

ReadAndExecute 131241

Specifica il diritto di aprire e copiare delle cartelle o dei file in sola lettura e di eseguire dei file di applicazione. Questo diritto comprende il diritto Read e il diritto ExecuteFile.

ReadAttributes 128

Specifica il diritto di aprire e copiare attributi di file system da una cartella o da un file. Questo valore specifica ad esempio il diritto di visualizzare la data di creazione o di modifica del file, ma non il diritto di leggere i dati, attributi di file system estesi o le regole di accesso e di controllo.

ReadData 1

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

ReadExtendedAttributes 8

Specifica il diritto di aprire e copiare attributi di file system estesi da una cartella o da un file. Questo valore specifica ad esempio il diritto di visualizzare informazioni su autore e contenuto, ma non il diritto di leggere i dati, gli attributi di file system o le regole di accesso e di controllo.

ReadPermissions 131072

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

Synchronize 1048576

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

TakeOwnership 524288

Specifica il diritto di modificare il proprietario di una cartella o di un file. Il proprietario di una risorsa ha accesso completo ad essa.

Traverse 32

Specifica il diritto di visualizzare l'elenco del contenuto di una cartella e di eseguire applicazioni in essa contenute.

Write 278

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

WriteAttributes 256

Specifica il diritto di aprire e scrivere attributi di file system in una cartella o un file. Non è tuttavia prevista la possibilità di scrivere dati, attributi estesi o regole di accesso e di controllo.

WriteData 2

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

WriteExtendedAttributes 16

Specifica il diritto di aprire e scrivere attributi di file system estesi in una cartella o un file. Non è tuttavia prevista la possibilità di scrivere dati, attributi o regole di accesso e di controllo.

Esempio

Nell'esempio seguente viene usata l'enumerazione FileSystemRights per specificare una regola di accesso e quindi rimuovere la regola di accesso da un file. È necessario specificare un utente valido o un account di gruppo per eseguire questo esempio.

using namespace System;
using namespace System::IO;
using namespace System::Security::AccessControl;

// Adds an ACL entry on the specified file for the specified account.

void AddFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{
    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

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

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

// Removes an ACL entry on the specified file for the specified account.

void RemoveFileSecurity(String^ fileName, String^ account, 
                        FileSystemRights rights, AccessControlType controlType)
{

    // Get a FileSecurity object that represents the 
    // current security settings.
    FileSecurity^ fSecurity = File::GetAccessControl(fileName);

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

    // Set the new access settings.
    File::SetAccessControl(fileName, fSecurity);
}

int main()
{
    try
    {
        String^ fileName = "test.xml";

        Console::WriteLine("Adding access control entry for " + fileName);

        // Add the access control entry to the file.
        AddFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Removing access control entry from " + fileName);

        // Remove the access control entry from the file.
        RemoveFileSecurity(fileName, "MYDOMAIN\\MyAccount", 
            FileSystemRights::ReadData, AccessControlType::Allow);

        Console::WriteLine("Done.");
    }
    catch (Exception^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

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

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

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

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
  
        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

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

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, 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)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

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

        ' Set the new access settings.
        File.SetAccessControl(fileName, fSecurity)

    End Sub
End Module

Commenti

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

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

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

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

Si applica a