DirectorySecurity Classe
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.
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à
-
DirectorySecurity
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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) |