FileSystemSecurity Classe

Definizione

Rappresenta il controllo di accesso e la sicurezza di controllo di un file o una directory.

public ref class FileSystemSecurity abstract : System::Security::AccessControl::NativeObjectSecurity
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
[System.Security.SecurityCritical]
public abstract class FileSystemSecurity : System.Security.AccessControl.NativeObjectSecurity
type FileSystemSecurity = class
    inherit NativeObjectSecurity
[<System.Security.SecurityCritical>]
type FileSystemSecurity = class
    inherit NativeObjectSecurity
Public MustInherit Class FileSystemSecurity
Inherits NativeObjectSecurity
Ereditarietà
Derivato
Attributi

Esempio

Nell'esempio di codice seguente viene usata la FileSecurity classe per aggiungere e quindi rimuovere una voce dell'elenco di controllo di accesso (ACL) 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

La FileSystemSecurity classe è la classe base per le FileSecurity classi e DirectorySecurity . Queste classi rappresentano tutti i diritti di accesso per un file o una directory di sistema e definiscono come vengono controllati i tentativi di accesso.

La FileSystemSecurity classe rappresenta i diritti di accesso e controllo come set di regole. Ogni regola di accesso è rappresentata da un FileSystemAccessRule oggetto , mentre ogni regola di controllo è rappresentata da un FileSystemAuditRule oggetto .

La FileSystemSecurity classe è un'astrazione del Microsoft sistema di sicurezza dei file di Windows sottostante. In questo sistema, ogni file o directory ha un elenco di controllo di accesso discrezionale (DACL), che controlla l'accesso al file o alla directory e un elenco di controllo di accesso di sistema (SACL), che specifica i tentativi di controllo di accesso controllati. Le FileSystemAccessRule classi e FileSystemAuditRule sono astrazioni di voci di controllo di accesso (ACL) che comprendono daCLs e SACLs.

La FileSystemSecurity classe nasconde molti dettagli di DACL e SACL. Non è necessario preoccuparsi dell'ordinamento ACE o dell'elenco DACL Null.

Per rendere persistenti le informazioni sull'elenco di controllo di accesso (ACL) nuove o modificate in un file, utilizzare il SetAccessControl metodo o SetAccessControl . Per rendere persistenti le informazioni sull'elenco di controllo di accesso nuove o modificate in una directory, usare il SetAccessControl metodo o SetAccessControl .

Per recuperare le informazioni ACL da un file, usare il GetAccessControl metodo o GetAccessControl . Per recuperare le informazioni ACL da una directory, usare il GetAccessControl metodo o GetAccessControl .

Proprietà

AccessRightType

Ottiene l'enumerazione utilizzata dalla classe FileSystemSecurity per rappresentare i diritti di accesso.

AccessRulesModified

Ottiene o imposta un valore booleano che specifica se le regole di accesso associate all'oggetto ObjectSecurity sono state modificate.

(Ereditato da ObjectSecurity)
AccessRuleType

Ottiene l'enumerazione utilizzata dalla classe FileSystemSecurity per rappresentare le regole di accesso.

AreAccessRulesCanonical

Ottiene un valore booleano che specifica se le regole di accesso associate a questo oggetto ObjectSecurity sono in ordinamento canonico.

(Ereditato da ObjectSecurity)
AreAccessRulesProtected

Ottiene un valore booleano che specifica se l'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto ObjectSecurity è protetto.

(Ereditato da ObjectSecurity)
AreAuditRulesCanonical

Ottiene un valore booleano che specifica se le regole di controllo associate all'oggetto ObjectSecurity sono in ordinamento canonico.

(Ereditato da ObjectSecurity)
AreAuditRulesProtected

Ottiene un valore booleano che specifica se l'elenco di controllo di accesso di sistema (SACL) associato a questo oggetto ObjectSecurity è protetto.

(Ereditato da ObjectSecurity)
AuditRulesModified

Ottiene o imposta un valore booleano che specifica se le regole di controllo associate all'oggetto ObjectSecurity sono state modificate.

(Ereditato da ObjectSecurity)
AuditRuleType

Ottiene il tipo utilizzato dalla classe FileSystemSecurity per rappresentare le regole di controllo.

GroupModified

Ottiene o imposta un valore booleano che specifica se il gruppo associato all'oggetto a protezione diretta è stato modificato.

(Ereditato da ObjectSecurity)
IsContainer

Ottiene un valore booleano che specifica se l'oggetto ObjectSecurity è un oggetto contenitore.

(Ereditato da ObjectSecurity)
IsDS

Ottiene un valore booleano che specifica se l'oggetto ObjectSecurity è un oggetto directory.

(Ereditato da ObjectSecurity)
OwnerModified

Ottiene o imposta un valore booleano che specifica se il proprietario dell'oggetto a protezione diretta è stato modificato.

(Ereditato da ObjectSecurity)
SecurityDescriptor

Ottiene il descrittore di sicurezza per questa istanza.

(Ereditato da ObjectSecurity)

Metodi

AccessRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AccessControlType)

Inizializza una nuova istanza della classe FileSystemAccessRule che rappresenta una nuova regola di controllo di accesso per l'utente specificato, con i diritti di accesso, il controllo di accesso e i flag specificati.

AddAccessRule(AccessRule)

Aggiunge la regola di accesso specificata al DACL (Discretionary Access Control List, elenco di controllo di accesso discrezionale) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Aggiunge l'autorizzazione ACL (Access Control List, elenco di controllo di accesso) specificata al file o alla directory corrente.

AddAuditRule(AuditRule)

Aggiunge la regola di controllo specificata al SACL (System Access Control List, elenco di controllo di accesso di sistema) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Aggiunge la regola di controllo specificata al file o alla directory corrente.

AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

Inizializza una nuova istanza della classe FileSystemAuditRule che rappresenta la regola di controllo specificata per l'utente specificato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetAccessRules(Boolean, Boolean, Type)

Ottiene un insieme delle regole di accesso associate all'identificatore di sicurezza specificato.

(Ereditato da CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Ottiene un insieme di regole di accesso associate all'identificatore di sicurezza specificato.

(Ereditato da CommonObjectSecurity)
GetGroup(Type)

Ottiene il gruppo primario associato al proprietario specificato.

(Ereditato da ObjectSecurity)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetOwner(Type)

Ottiene il proprietario associato al gruppo primario specificato.

(Ereditato da ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Restituisce una matrice di valori byte che rappresenta le informazioni del descrittore di sicurezza per questo oggetto ObjectSecurity.

(Ereditato da ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Restituisce la rappresentazione in formato SDDL (Security Descriptor Definition Language) delle sezioni specificate del descrittore di sicurezza associato a questo oggetto ObjectSecurity.

(Ereditato da ObjectSecurity)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Applica la modifica specificata all'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Applica la modifica specificata all'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto ObjectSecurity.

(Ereditato da ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Applica la modifica specificata all'elenco di controllo di accesso di sistema (SACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Applica la modifica specificata all'elenco di controllo di accesso di sistema (SACL) associato all'oggetto ObjectSecurity.

(Ereditato da ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Salva le sezioni specificate del descrittore di sicurezza associato a questo oggetto ObjectSecurity in un archivio permanente. Si consiglia di usare valori identici per i parametri includeSections passati al costruttore e per i metodi Persist.

(Ereditato da ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Salva le sezioni specificate del descrittore di sicurezza associato a questo oggetto NativeObjectSecurity in un archivio permanente. Si consiglia di usare valori identici per i parametri includeSections passati al costruttore e i metodi Persist.

(Ereditato da NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Salva le sezioni specificate del descrittore di sicurezza associato a questo oggetto NativeObjectSecurity in un archivio permanente. Si consiglia di usare valori identici per i parametri includeSections passati al costruttore e per i metodi Persist.

(Ereditato da NativeObjectSecurity)
Persist(String, AccessControlSections)

Salva le sezioni specificate del descrittore di sicurezza associato a questo oggetto NativeObjectSecurity in un archivio permanente. Si consiglia di usare valori identici per i parametri includeSections passati al costruttore e per i metodi Persist.

(Ereditato da NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Salva le sezioni specificate del descrittore di sicurezza associato a questo oggetto NativeObjectSecurity in un archivio permanente. Si consiglia di usare valori identici per i parametri includeSections passati al costruttore e per i metodi Persist.

(Ereditato da NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Rimuove tutte le regole di accesso associate all'oggetto IdentityReference specificato.

(Ereditato da ObjectSecurity)
PurgeAuditRules(IdentityReference)

Rimuove tutte le regole di controllo associate all'oggetto IdentityReference specificato.

(Ereditato da ObjectSecurity)
ReadLock()

Blocca questo oggetto ObjectSecurity per l'accesso in lettura.

(Ereditato da ObjectSecurity)
ReadUnlock()

Sblocca l'oggetto ObjectSecurity per l'accesso in lettura.

(Ereditato da ObjectSecurity)
RemoveAccessRule(AccessRule)

Rimuove le regole di accesso che contengono lo stesso ID di sicurezza e la stessa maschera di accesso della regola di accesso specificata dall'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Rimuove tutte le autorizzazioni ACL (Access Control List, elenco di controllo di accesso) corrispondenti di concessione o negazione di diritti dal file o dalla directory corrente.

RemoveAccessRuleAll(AccessRule)

Rimuove tutte le regole di accesso che dispongono dello stesso ID di sicurezza della regola di accesso specificata dall'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Rimuove tutte le autorizzazioni ACL (Access Control List, elenco di controllo di accesso) per l'utente specificato dal file o dalla directory corrente.

RemoveAccessRuleSpecific(AccessRule)

Rimuove tutte le regole di accesso che corrispondono esattamente alla regola di accesso specificata dall'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Rimuove una singola autorizzazione ACL (Access Control List, elenco di controllo di accesso) corrispondente di concessione o negazione di diritti dal file o dalla directory corrente.

RemoveAuditRule(AuditRule)

Rimuove le regole di controllo che contengono lo stesso ID di sicurezza e la stessa maschera di accesso della regola di controllo specificata dall'elenco di controllo di accesso di sistema (SACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Rimuove tutte le regole di controllo corrispondenti di concessione o negazione di diritti dal file o dalla directory corrente.

RemoveAuditRuleAll(AuditRule)

Rimuove tutte le regole di controllo che dispongono dello stesso ID di sicurezza della regola di controllo specificata dall'elenco di controllo di accesso di sistema (SACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Rimuove tutte le regole di controllo per l'utente specificato dal file o dalla directory corrente.

RemoveAuditRuleSpecific(AuditRule)

Rimuove tutte le regole di controllo che corrispondono esattamente alla regola di controllo specificata dall'elenco di controllo di accesso di sistema (SACL) associato all'oggetto CommonObjectSecurity.

(Ereditato da CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Rimuove una singola regola di controllo corrispondente di concessione o negazione di diritti dal file o dalla directory corrente.

ResetAccessRule(AccessRule)

Rimuove tutte le regole di accesso presenti nell'elenco di controllo di accesso discrezionale (DACL) associate all'oggetto CommonObjectSecurity e aggiunge la regola di accesso specificata.

(Ereditato da CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Aggiunge l'autorizzazione ACL (Access Control List, elenco di controllo di accesso) specificata al file o alla directory corrente e rimuove tutte le autorizzazioni ACL corrispondenti.

SetAccessRule(AccessRule)

Rimuove tutte le regole di accesso che contengono lo stesso ID di sicurezza e lo stesso qualificatore della regola di accesso specificata nell'elenco di controllo di accesso discrezionale (DACL) associato all'oggetto CommonObjectSecurity e aggiunge la regola di accesso specificata.

(Ereditato da CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Imposta l'autorizzazione ACL (Access Control List, elenco di controllo di accesso) specificata per il file o la directory corrente.

SetAccessRuleProtection(Boolean, Boolean)

Imposta o rimuove la protezione delle regole di accesso associate a questo oggetto ObjectSecurity. Le regole di accesso protette non possono essere modificate da oggetti padre mediante l'ereditarietà.

(Ereditato da ObjectSecurity)
SetAuditRule(AuditRule)

Rimuove tutte le regole di controllo che contengono lo stesso ID di sicurezza e lo stesso qualificatore della regola di controllo specificata nell'elenco di controllo di accesso di sistema (SACL) associato all'oggetto CommonObjectSecurity e aggiunge la regola di controllo specificata.

(Ereditato da CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Imposta la regola di controllo specificata per il file o la directory corrente.

SetAuditRuleProtection(Boolean, Boolean)

Imposta o rimuove la protezione delle regole di controllo associate a questo oggetto ObjectSecurity. Le regole di controllo protette non possono essere modificate da oggetti padre usando l'ereditarietà.

(Ereditato da ObjectSecurity)
SetGroup(IdentityReference)

Imposta il gruppo primario per il descrittore di sicurezza associato a questo oggetto ObjectSecurity.

(Ereditato da ObjectSecurity)
SetOwner(IdentityReference)

Imposta il proprietario per il descrittore di sicurezza associato all'oggetto ObjectSecurity.

(Ereditato da ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Imposta il descrittore di sicurezza per l'oggetto ObjectSecurity dalla matrice specificata di valori di byte.

(Ereditato da ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Imposta le sezioni specificate del descrittore di sicurezza per l'oggetto ObjectSecurity dalla matrice specificata di valori in byte.

(Ereditato da ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Imposta il descrittore di sicurezza per l'oggetto ObjectSecurity dalla stringa SDDL (Security Descriptor Definition Language) specificata.

(Ereditato da ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Imposta le sezioni specificate del descrittore di sicurezza per questo oggetto ObjectSecurity dalla stringa SDDL (Security Descriptor Definition Language) specificata.

(Ereditato da ObjectSecurity)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WriteLock()

Blocca l'oggetto ObjectSecurity per l'accesso in scrittura.

(Ereditato da ObjectSecurity)
WriteUnlock()

Sblocca l'oggetto ObjectSecurity per l'accesso in scrittura.

(Ereditato da ObjectSecurity)

Si applica a