Partager via


FileSystemSecurity Classe

Définition

Représente le contrôle d’accès et la sécurité d’audit d’un fichier ou d’un répertoire.

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
Héritage
Dérivé
Attributs

Exemples

L’exemple de code suivant utilise la classe FileSecurity pour ajouter, puis supprimer une entrée de liste de contrôle d’accès (ACL) d’un fichier. Vous devez fournir un compte d’utilisateur ou de groupe valide pour exécuter cet exemple.

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

Remarques

La classe FileSystemSecurity est la classe de base pour les classes FileSecurity et DirectorySecurity. Ces classes représentent tous les droits d’accès d’un fichier ou d’un répertoire système et définissent la façon dont les tentatives d’accès sont auditées.

La classe FileSystemSecurity représente les droits d’accès et d’audit sous la forme d’un ensemble de règles. Chaque règle d’accès est représentée par un objet FileSystemAccessRule, tandis que chaque règle d’audit est représentée par un objet FileSystemAuditRule.

La classe FileSystemSecurity est une abstraction du système de sécurité de fichiers Microsoft Windows sous-jacent. Dans ce système, chaque fichier ou répertoire a une liste de contrôle d’accès discrétionnaire (DACL), qui contrôle l’accès au fichier ou au répertoire et une liste de contrôle d’accès système (SACL), qui spécifie les tentatives de contrôle d’accès qui sont auditées. Les classes FileSystemAccessRule et FileSystemAuditRule sont des abstractions des entrées de contrôle d’accès (ACL) qui comprennent des dll DACL et des LISTES SACL.

La classe FileSystemSecurity masque un grand nombre de détails de DACLs et de SACL ; vous n’avez pas à vous soucier de l’ordre ACE ou du DACLS Null.

Utilisez les méthodes dépendantes de l’implémentation .NET suivantes pour ajouter ou récupérer des informations de liste de contrôle d’accès à partir d’un fichier :

Implémentation .NET Ajouter des règles Récupérer des règles
.FILET FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Propriétés

AccessRightType

Obtient l’énumération utilisée par la classe FileSystemSecurity pour représenter les droits d’accès.

AccessRulesModified

Obtient ou définit une valeur booléenne qui spécifie si les règles d’accès associées à cet objet ObjectSecurity ont été modifiées.

(Hérité de ObjectSecurity)
AccessRuleType

Obtient l’énumération utilisée par la classe FileSystemSecurity pour représenter les règles d’accès.

AreAccessRulesCanonical

Obtient une valeur booléenne qui spécifie si les règles d’accès associées à cet objet ObjectSecurity sont dans l’ordre canonique.

(Hérité de ObjectSecurity)
AreAccessRulesProtected

Obtient une valeur booléenne qui spécifie si la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet ObjectSecurity est protégée.

(Hérité de ObjectSecurity)
AreAuditRulesCanonical

Obtient une valeur booléenne qui spécifie si les règles d’audit associées à cet objet ObjectSecurity sont dans l’ordre canonique.

(Hérité de ObjectSecurity)
AreAuditRulesProtected

Obtient une valeur booléenne qui spécifie si la liste de contrôle d’accès système (SACL) associée à cet objet ObjectSecurity est protégée.

(Hérité de ObjectSecurity)
AuditRulesModified

Obtient ou définit une valeur booléenne qui spécifie si les règles d’audit associées à cet objet ObjectSecurity ont été modifiées.

(Hérité de ObjectSecurity)
AuditRuleType

Obtient le type utilisé par la classe FileSystemSecurity pour représenter des règles d’audit.

GroupModified

Obtient ou définit une valeur booléenne qui spécifie si le groupe associé à l’objet sécurisable a été modifié.

(Hérité de ObjectSecurity)
IsContainer

Obtient une valeur booléenne qui spécifie si cet objet ObjectSecurity est un objet conteneur.

(Hérité de ObjectSecurity)
IsDS

Obtient une valeur booléenne qui spécifie si cet objet ObjectSecurity est un objet de répertoire.

(Hérité de ObjectSecurity)
OwnerModified

Obtient ou définit une valeur booléenne qui spécifie si le propriétaire de l’objet sécurisable a été modifié.

(Hérité de ObjectSecurity)
SecurityDescriptor

Obtient le descripteur de sécurité pour cette instance.

(Hérité de ObjectSecurity)

Méthodes

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

Initialise une nouvelle instance de la classe FileSystemAccessRule qui représente une nouvelle règle de contrôle d’accès pour l’utilisateur spécifié, avec les droits d’accès, le contrôle d’accès et les indicateurs spécifiés.

AddAccessRule(AccessRule)

Ajoute la règle d’accès spécifiée à la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Ajoute l’autorisation de liste de contrôle d’accès (ACL) spécifiée au fichier ou au répertoire actif.

AddAuditRule(AuditRule)

Ajoute la règle d’audit spécifiée à la liste de contrôle d’accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Ajoute la règle d’audit spécifiée au fichier ou au répertoire actif.

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

Initialise une nouvelle instance de la classe FileSystemAuditRule représentant la règle d’audit spécifiée pour l’utilisateur spécifié.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetAccessRules(Boolean, Boolean, Type)

Obtient une collection des règles d’accès associées à l’identificateur de sécurité spécifié.

(Hérité de CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Obtient une collection des règles d’audit associées à l’identificateur de sécurité spécifié.

(Hérité de CommonObjectSecurity)
GetGroup(Type)

Obtient le groupe principal associé au propriétaire spécifié.

(Hérité de ObjectSecurity)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetOwner(Type)

Obtient le propriétaire associé au groupe principal spécifié.

(Hérité de ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Retourne un tableau de valeurs d’octets qui représente les informations de descripteur de sécurité pour cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Retourne la représentation SDDL (Security Descriptor Definition Language) des sections spécifiées du descripteur de sécurité associé à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Applique la modification spécifiée à la liste de contrôle d’accès système associée à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet ObjectSecurity dans un stockage permanent. Nous recommandons que les valeurs des paramètres includeSections passés au constructeur et les méthodes persistantes soient identiques.

(Hérité de ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous vous recommandons.persister que les valeurs des paramètres de includeSections passés au constructeur et les méthodes persistantes soient identiques.

(Hérité de NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous recommandons que les valeurs des paramètres includeSections passés au constructeur et les méthodes persistantes soient identiques.

(Hérité de NativeObjectSecurity)
Persist(String, AccessControlSections)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous recommandons que les valeurs des paramètres includeSections passés au constructeur et les méthodes persistantes soient identiques.

(Hérité de NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Enregistre les sections spécifiées du descripteur de sécurité associé à cet objet NativeObjectSecurity dans un stockage permanent. Nous recommandons que les valeurs des paramètres includeSections passés au constructeur et les méthodes persistantes soient identiques.

(Hérité de NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Supprime toutes les règles d’accès associées au IdentityReferencespécifié.

(Hérité de ObjectSecurity)
PurgeAuditRules(IdentityReference)

Supprime toutes les règles d’audit associées au IdentityReferencespécifié.

(Hérité de ObjectSecurity)
ReadLock()

Verrouille cet objet ObjectSecurity pour l’accès en lecture.

(Hérité de ObjectSecurity)
ReadUnlock()

Déverrouille cet objet ObjectSecurity pour l’accès en lecture.

(Hérité de ObjectSecurity)
RemoveAccessRule(AccessRule)

Supprime les règles d’accès qui contiennent le même identificateur de sécurité et le même masque d’accès que la règle d’accès spécifiée de la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Supprime toutes les autorisations de liste de contrôle d’accès (ACL) autorisées ou refusées correspondantes du fichier ou du répertoire actif.

RemoveAccessRuleAll(AccessRule)

Supprime toutes les règles d’accès qui ont le même identificateur de sécurité que la règle d’accès spécifiée de la liste de contrôle d’accès discrétionnaire associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Supprime toutes les autorisations de liste de contrôle d’accès (ACL) pour l’utilisateur spécifié du fichier ou du répertoire actif.

RemoveAccessRuleSpecific(AccessRule)

Supprime toutes les règles d’accès qui correspondent exactement à la règle d’accès spécifiée de la liste de contrôle d’accès discrétionnaire associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Supprime une autorisation de liste de contrôle d’accès (ACL) de la liste de contrôle d’accès correspondante unique du fichier ou du répertoire actif.

RemoveAuditRule(AuditRule)

Supprime les règles d’audit qui contiennent le même identificateur de sécurité et le même masque d’accès que la règle d’audit spécifiée de la liste de contrôle d’accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Supprime toutes les règles d’audit d’autorisation ou de refus correspondantes du fichier ou du répertoire actif.

RemoveAuditRuleAll(AuditRule)

Supprime toutes les règles d’audit qui ont le même identificateur de sécurité que la règle d’audit spécifiée de la liste de contrôle d’accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Supprime toutes les règles d’audit pour l’utilisateur spécifié du fichier ou du répertoire actif.

RemoveAuditRuleSpecific(AuditRule)

Supprime toutes les règles d’audit qui correspondent exactement à la règle d’audit spécifiée de la liste de contrôle d’accès système associée à cet objet CommonObjectSecurity.

(Hérité de CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Supprime une règle d’audit d’autorisation ou de refus correspondante unique du fichier ou du répertoire actif.

ResetAccessRule(AccessRule)

Supprime toutes les règles d’accès dans la liste de contrôle d’accès discrétionnaire (DACL) associée à cet objet CommonObjectSecurity, puis ajoute la règle d’accès spécifiée.

(Hérité de CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Ajoute l’autorisation de liste de contrôle d’accès (ACL) spécifiée au fichier ou au répertoire actif et supprime toutes les autorisations de liste de contrôle d’accès correspondantes.

SetAccessRule(AccessRule)

Supprime toutes les règles d’accès qui contiennent le même identificateur de sécurité et qualificateur que la règle d’accès spécifiée dans la liste de contrôle d’accès discrétionnaire associée à cet objet CommonObjectSecurity, puis ajoute la règle d’accès spécifiée.

(Hérité de CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Définit l’autorisation de liste de contrôle d’accès (ACL) spécifiée pour le fichier ou le répertoire actif.

SetAccessRuleProtection(Boolean, Boolean)

Définit ou supprime la protection des règles d’accès associées à cet objet ObjectSecurity. Les règles d’accès protégées ne peuvent pas être modifiées par les objets parents via l’héritage.

(Hérité de ObjectSecurity)
SetAuditRule(AuditRule)

Supprime toutes les règles d’audit qui contiennent le même identificateur de sécurité et qualificateur que la règle d’audit spécifiée dans la liste de contrôle d’accès système associée à cet objet CommonObjectSecurity, puis ajoute la règle d’audit spécifiée.

(Hérité de CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Définit la règle d’audit spécifiée pour le fichier ou le répertoire actif.

SetAuditRuleProtection(Boolean, Boolean)

Définit ou supprime la protection des règles d’audit associées à cet objet ObjectSecurity. Les règles d’audit protégées ne peuvent pas être modifiées par les objets parents via l’héritage.

(Hérité de ObjectSecurity)
SetGroup(IdentityReference)

Définit le groupe principal du descripteur de sécurité associé à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
SetOwner(IdentityReference)

Définit le propriétaire du descripteur de sécurité associé à cet objet ObjectSecurity.

(Hérité de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Définit le descripteur de sécurité pour cet objet ObjectSecurity à partir du tableau spécifié de valeurs d’octets.

(Hérité de ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Définit les sections spécifiées du descripteur de sécurité pour cet objet ObjectSecurity à partir du tableau de valeurs d’octet spécifié.

(Hérité de ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Définit le descripteur de sécurité pour cet objet ObjectSecurity à partir de la chaîne SDDL (Security Descriptor Definition Language) spécifiée.

(Hérité de ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Définit les sections spécifiées du descripteur de sécurité pour cet objet ObjectSecurity à partir de la chaîne SDDL (Security Descriptor Definition Language) spécifiée.

(Hérité de ObjectSecurity)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
WriteLock()

Verrouille cet objet ObjectSecurity pour l’accès en écriture.

(Hérité de ObjectSecurity)
WriteUnlock()

Déverrouille cet objet ObjectSecurity pour l’accès en écriture.

(Hérité de ObjectSecurity)

S’applique à