DirectorySecurity Classe

Definizione

Rappresenta il controllo di accesso e la sicurezza di controllo per una directory. La classe non può essere ereditata.

public ref class DirectorySecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class DirectorySecurity : System.Security.AccessControl.FileSystemSecurity
type DirectorySecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class DirectorySecurity
Inherits FileSystemSecurity
Ereditarietà

Esempio

Nell'esempio di codice seguente viene usata la DirectorySecurity classe per aggiungere e quindi rimuovere una voce dell'elenco di controllo di accesso (ACL) da una directory. Per eseguire questo esempio, è necessario specificare un account utente o gruppo valido.

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

namespace FileSystemExample
{
    class DirectoryExample
    {
        public static void Main()
        {
            try
            {
                string DirectoryName = "TestDirectory";

                Console.WriteLine("Adding access control entry for " + DirectoryName);

                // Add the access control entry to the directory.
                AddDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

                Console.WriteLine("Removing access control entry from " + DirectoryName);

                // Remove the access control entry from the directory.
                RemoveDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);

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

            Console.ReadLine();
        }

        // Adds an ACL entry on the specified directory for the specified account.
        public static void AddDirectorySecurity(
            string DirectoryName,
            string Account,
            FileSystemRights Rights,
            AccessControlType ControlType
            )
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new(DirectoryName);

            // Get a DirectorySecurity object that represents the
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

            // Set the new access settings.
            dInfo.SetAccessControl(dSecurity);
        }

        // Removes an ACL entry on the specified directory for the specified account.
        public static void RemoveDirectorySecurity(
            string DirectoryName,
            string Account,
            FileSystemRights Rights,
            AccessControlType ControlType
            )
        {
            // Create a new DirectoryInfo object.
            DirectoryInfo dInfo = new(DirectoryName);

            // Get a DirectorySecurity object that represents the
            // current security settings.
            DirectorySecurity dSecurity = dInfo.GetAccessControl();

            // Add the FileSystemAccessRule to the security settings.
            dSecurity.RemoveAccessRule(new FileSystemAccessRule(Account,
                                                            Rights,
                                                            ControlType));

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



Module DirectoryExample

    Sub Main()
        Try
            Dim DirectoryName As String = "TestDirectory"

            Console.WriteLine("Adding access control entry for " + DirectoryName)

            ' Add the access control entry to the directory.
            AddDirectorySecurity(DirectoryName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow)

            Console.WriteLine("Removing access control entry from " + DirectoryName)

            ' Remove the access control entry from the directory.
            RemoveDirectorySecurity(DirectoryName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow)

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

        Console.ReadLine()

    End Sub


    ' Adds an ACL entry on the specified directory for the specified account.
    Sub AddDirectorySecurity(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
        ' Create a new DirectoryInfoobject.
        Dim dInfo As New DirectoryInfo(FileName)

        ' Get a DirectorySecurity object that represents the 
        ' current security settings.
        Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        dSecurity.AddAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))

        ' Set the new access settings.
        dInfo.SetAccessControl(dSecurity)

    End Sub


    ' Removes an ACL entry on the specified directory for the specified account.
    Sub RemoveDirectorySecurity(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
        ' Create a new DirectoryInfo object.
        Dim dInfo As New DirectoryInfo(FileName)

        ' Get a DirectorySecurity object that represents the 
        ' current security settings.
        Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        dSecurity.RemoveAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))

        ' Set the new access settings.
        dInfo.SetAccessControl(dSecurity)

    End Sub
End Module

Commenti

La DirectorySecurity classe specifica i diritti di accesso per una directory di sistema e il modo in cui vengono controllati i tentativi di accesso. Questa 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 classe DirectorySecurity è un'astrazione del file system di Windows sottostante. In questo sistema ogni directory dispone di un elenco di controllo di accesso discrezionale (DACL), che controlla l'accesso 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 delle voci di controllo di accesso (ACL) che comprendono daCL e SACL.

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

Usare la FileSecurity classe per recuperare, aggiungere o modificare le regole di accesso che rappresentano l'elenco dati DACL e SACL di un file.

Nelle tabelle seguenti sono elencati i metodi che è possibile usare per accedere e gestire la sicurezza della directory.

Attività Methods
Aggiungere regole FileSystemSecurity.AddAccessRule

FileSystemSecurity.AddAuditRule
Rimuovere le regole FileSystemSecurity.RemoveAccessRule

FileSystemSecurity.RemoveAuditRule
Recuperare il controllo di accesso in una directory FileSystemAclExtensions.GetAccessControl(DirectoryInfo)

DirectoryInfo.GetAccessControl
Rendere persistente il controllo di accesso in una directory FileSystemAclExtensions.SetAccessControl(DirectoryInfo, DirectorySecurity)

DirectoryInfo.SetAccessControl

Costruttori

Nome Descrizione
DirectorySecurity()

Inizializza una nuova istanza della classe DirectorySecurity.

DirectorySecurity(String, AccessControlSections)

Inizializza una nuova istanza della DirectorySecurity classe da una directory specificata utilizzando i valori specificati dell'enumerazione AccessControlSections .

Proprietà

Nome Descrizione
AccessRightType

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

(Ereditato da FileSystemSecurity)
AccessRulesModified

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

(Ereditato da ObjectSecurity)
AccessRuleType

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

(Ereditato da FileSystemSecurity)
AreAccessRulesCanonical

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

(Ereditato da ObjectSecurity)
AreAccessRulesProtected

Ottiene un valore booleano che specifica se l'elenco DACL (Discretionary Controllo di accesso List) associato a questo ObjectSecurity oggetto è protetto.

(Ereditato da ObjectSecurity)
AreAuditRulesCanonical

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

(Ereditato da ObjectSecurity)
AreAuditRulesProtected

Ottiene un valore booleano che specifica se l'elenco sacl (System Controllo di accesso List) associato a questo ObjectSecurity oggetto è protetto.

(Ereditato da ObjectSecurity)
AuditRulesModified

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

(Ereditato da ObjectSecurity)
AuditRuleType

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

(Ereditato da FileSystemSecurity)
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)

Metodi

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

Inizializza una nuova istanza della FileSystemAccessRule classe 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.

(Ereditato da FileSystemSecurity)
AddAccessRule(AccessRule)

Aggiunge la regola di accesso specificata all'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Aggiunge l'autorizzazione ACL (Access Control List) specificata al file o alla directory corrente.

(Ereditato da FileSystemSecurity)
AddAuditRule(AuditRule)

Aggiunge la regola di controllo specificata all'elenco SACL (System Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

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

(Ereditato da FileSystemSecurity)
AuditRuleFactory(IdentityReference, Int32, Boolean, InheritanceFlags, PropagationFlags, AuditFlags)

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

(Ereditato da FileSystemSecurity)
Equals(Object)

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

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

Ottiene una raccolta delle regole di accesso associate all'identificatore di sicurezza specificato.

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

Ottiene una raccolta delle regole di controllo 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 di byte che rappresenta le informazioni sul descrittore di sicurezza per questo ObjectSecurity oggetto.

(Ereditato da ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

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

(Ereditato da ObjectSecurity)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

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

Applica la modifica specificata all'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

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

Applica la modifica specificata all'elenco DACL (Discretionary Controllo di accesso List) associato a questo ObjectSecurity oggetto.

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

Applica la modifica specificata all'elenco SACL (System Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

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

Applica la modifica specificata all'elenco SACL (System Controllo di accesso List) associato a questo ObjectSecurity oggetto.

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

Salva le sezioni specificate del descrittore di sicurezza associato a questo ObjectSecurity oggetto in una risorsa di archiviazione permanente. È consigliabile che i valori dei includeSections parametri passati al costruttore e rendere persistenti i metodi siano identici.

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

Salva le sezioni specificate del descrittore di sicurezza associato a questo NativeObjectSecurity oggetto in una risorsa di archiviazione permanente. È consigliabile che i valori dei includeSections parametri passati al costruttore e rendere persistenti i metodi siano identici.

(Ereditato da NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Salva le sezioni specificate del descrittore di sicurezza associato a questo NativeObjectSecurity oggetto in una risorsa di archiviazione permanente. È consigliabile mantenere che i valori dei includeSections parametri passati al costruttore e rendere persistenti i metodi siano identici.

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

Salva le sezioni specificate del descrittore di sicurezza associato a questo NativeObjectSecurity oggetto in una risorsa di archiviazione permanente. È consigliabile che i valori dei includeSections parametri passati al costruttore e rendere persistenti i metodi siano identici.

(Ereditato da NativeObjectSecurity)
Persist(String, AccessControlSections)

Salva le sezioni specificate del descrittore di sicurezza associato a questo NativeObjectSecurity oggetto in una risorsa di archiviazione permanente. È consigliabile che i valori dei includeSections parametri passati al costruttore e rendere persistenti i metodi siano identici.

(Ereditato da NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

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

(Ereditato da ObjectSecurity)
PurgeAuditRules(IdentityReference)

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

(Ereditato da ObjectSecurity)
ReadLock()

Blocca questo ObjectSecurity oggetto per l'accesso in lettura.

(Ereditato da ObjectSecurity)
ReadUnlock()

Sblocca questo ObjectSecurity oggetto per l'accesso in lettura.

(Ereditato da ObjectSecurity)
RemoveAccessRule(AccessRule)

Rimuove le regole di accesso che contengono lo stesso identificatore di sicurezza e la stessa maschera di accesso della regola di accesso specificata dall'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Rimuove tutte le autorizzazioni consentite o negate dall'elenco di controllo di accesso (ACL) corrispondente dal file o dalla directory corrente.

(Ereditato da FileSystemSecurity)
RemoveAccessRuleAll(AccessRule)

Rimuove tutte le regole di accesso con lo stesso identificatore di sicurezza della regola di accesso specificata dall'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

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

(Ereditato da FileSystemSecurity)
RemoveAccessRuleSpecific(AccessRule)

Rimuove tutte le regole di accesso che corrispondono esattamente alla regola di accesso specificata dall'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Rimuove un'autorizzazione ACL (Access Control List) corrispondente singola o negata dal file o dalla directory corrente.

(Ereditato da FileSystemSecurity)
RemoveAuditRule(AuditRule)

Rimuove le regole di controllo che contengono lo stesso identificatore di sicurezza e la stessa maschera di accesso della regola di controllo specificata dall'elenco SACL (System Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Rimuove tutte le regole di controllo consentite o negate corrispondenti dal file o dalla directory corrente.

(Ereditato da FileSystemSecurity)
RemoveAuditRuleAll(AuditRule)

Rimuove tutte le regole di controllo con lo stesso identificatore di sicurezza della regola di controllo specificata dall'elenco SACL (System Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

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

(Ereditato da FileSystemSecurity)
RemoveAuditRuleSpecific(AuditRule)

Rimuove tutte le regole di controllo che corrispondono esattamente alla regola di controllo specificata dall'elenco SACL (System Controllo di accesso List) associato a questo CommonObjectSecurity oggetto.

(Ereditato da CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Rimuove una singola regola di controllo consentita o negata corrispondente dal file o dalla directory corrente.

(Ereditato da FileSystemSecurity)
ResetAccessRule(AccessRule)

Rimuove tutte le regole di accesso nell'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto e quindi aggiunge la regola di accesso specificata.

(Ereditato da CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

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

(Ereditato da FileSystemSecurity)
SetAccessRule(AccessRule)

Rimuove tutte le regole di accesso che contengono lo stesso identificatore di sicurezza e qualificatore della regola di accesso specificata nell'elenco DACL (Discretionary Controllo di accesso List) associato a questo CommonObjectSecurity oggetto e quindi aggiunge la regola di accesso specificata.

(Ereditato da CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Imposta l'autorizzazione ACL (Access Control List) specificata per il file o la directory corrente.

(Ereditato da FileSystemSecurity)
SetAccessRuleProtection(Boolean, Boolean)

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

(Ereditato da ObjectSecurity)
SetAuditRule(AuditRule)

Rimuove tutte le regole di controllo che contengono lo stesso identificatore di sicurezza e qualificatore della regola di controllo specificata nell'elenco SACL (System Controllo di accesso List) associato a questo CommonObjectSecurity oggetto e quindi aggiunge la regola di controllo specificata.

(Ereditato da CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

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

(Ereditato da FileSystemSecurity)
SetAuditRuleProtection(Boolean, Boolean)

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

(Ereditato da ObjectSecurity)
SetGroup(IdentityReference)

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

(Ereditato da ObjectSecurity)
SetOwner(IdentityReference)

Imposta il proprietario del descrittore di sicurezza associato a questo ObjectSecurity oggetto.

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

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

(Ereditato da ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

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

(Ereditato da ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

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

(Ereditato da ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Imposta il descrittore di sicurezza per questo ObjectSecurity oggetto 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 questo ObjectSecurity oggetto per l'accesso in scrittura.

(Ereditato da ObjectSecurity)
WriteUnlock()

Sblocca questo ObjectSecurity oggetto per l'accesso in scrittura.

(Ereditato da ObjectSecurity)

Si applica a