FileSystemRights Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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 |
CreateFiles | 2 | Specifica il diritto di creare un file. Questo diritto richiede il valore |
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
, Read
e 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.