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 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à
- 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 |
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 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, FullControl
ad esempio , Read
e 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
.