Partager via


FileSecurity Classe

Définition

Représente le contrôle d’accès et la sécurité d’audit d’un fichier. Cette classe ne peut pas être héritée.

public ref class FileSecurity sealed : System::Security::AccessControl::FileSystemSecurity
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
[System.Security.SecurityCritical]
public sealed class FileSecurity : System.Security.AccessControl.FileSystemSecurity
type FileSecurity = class
    inherit FileSystemSecurity
[<System.Security.SecurityCritical>]
type FileSecurity = class
    inherit FileSystemSecurity
Public NotInheritable Class FileSecurity
Inherits FileSystemSecurity
Héritage
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 FileSecurity spécifie les droits d’accès d’un fichier système et la façon dont les tentatives d’accès sont auditées. Cette classe 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. Chaque règle d’audit est représentée par un objet FileSystemAuditRule.

La classe FileSecurity est une abstraction du système de sécurité de fichiers Microsoft Windows sous-jacent. Dans ce système, chaque fichier a une liste de contrôle d’accès discrétionnaire (DACL), qui contrôle l’accès au fichier 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 et des listes de contrôle d’accès.

La classe FileSecurity masque la plupart des détails des DLL et des LISTES SACL ; vous n’avez pas à vous soucier de l’ordre ACE ou des DLL Null.

Utilisez la classe FileSecurity pour récupérer, ajouter ou modifier les règles d’accès qui représentent la liste dacl et la liste de contrôle d’accès d’un fichier.

Utilisez les méthodes dépendantes de l’implémentation .NET suivantes pour ajouter ou récupérer les règles d’accès ou d’audit à 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()

Constructeurs

FileSecurity()

Initialise une nouvelle instance de la classe FileSecurity.

FileSecurity(String, AccessControlSections)

Initialise une nouvelle instance de la classe FileSecurity à partir d’un fichier spécifié à l’aide des valeurs spécifiées de l’énumération AccessControlSections.

Propriétés

AccessRightType

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

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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é.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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.

(Hérité de FileSystemSecurity)
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 à