Partager via


FileSystemAccessRule Classe

Définition

Représente une abstraction d'une entrée de contrôle d'accès (ACE) qui définit une règle d'accès pour un fichier ou un répertoire. Cette classe ne peut pas être héritée.

public ref class FileSystemAccessRule sealed : System::Security::AccessControl::AccessRule
public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule
[System.Security.SecurityCritical]
public sealed class FileSystemAccessRule : System.Security.AccessControl.AccessRule
type FileSystemAccessRule = class
    inherit AccessRule
[<System.Security.SecurityCritical>]
type FileSystemAccessRule = class
    inherit AccessRule
Public NotInheritable Class FileSystemAccessRule
Inherits AccessRule
Héritage
FileSystemAccessRule
Attributs

Exemples

L’exemple de code suivant utilise la FileSecurity classe pour ajouter, puis supprimer une entrée de contrôle d’accès (ACE) à partir d’un fichier. Vous devez entrer 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 FileSystemAccessRule classe représente une abstraction d’une entrée de contrôle d’accès (ACE) sous-jacente qui spécifie un compte d’utilisateur, le type d’accès à fournir (lecture, écriture, etc.) et si ce droit doit être autorisé ou refusé. Cette classe peut également spécifier la façon dont les règles d’accès sont propagées aux objets enfants.

Utilisez la FileSystemAccessRule classe pour créer une règle d’accès. Vous pouvez conserver la règle à l’aide de la FileSecurity classe ou DirectorySecurity .

Constructeurs

FileSystemAccessRule(IdentityReference, FileSystemRights, AccessControlType)

Initialise une nouvelle instance de la classe FileSystemAccessRule à l'aide d'une référence à un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'accès et d'une valeur qui spécifie s'il faut autoriser ou refuser l'opération.

FileSystemAccessRule(IdentityReference, FileSystemRights, InheritanceFlags, PropagationFlags, AccessControlType)

Initialise une nouvelle instance de la classe FileSystemAccessRule à l'aide d'une référence à un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'accès, d'une valeur qui détermine comment les droits sont hérités, d'une valeur qui détermine comment les droits sont propagés et d'une valeur qui spécifie s'il faut autoriser ou refuser l'opération.

FileSystemAccessRule(String, FileSystemRights, AccessControlType)

Initialise une nouvelle instance de la classe FileSystemAccessRule à l'aide du nom d'un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'accès et d'une valeur qui décrit s'il faut autoriser ou refuser l'opération.

FileSystemAccessRule(String, FileSystemRights, InheritanceFlags, PropagationFlags, AccessControlType)

Initialise une nouvelle instance de la classe FileSystemAccessRule à l'aide du nom d'un compte d'utilisateur, d'une valeur qui spécifie le type d'opération associé à la règle d'accès, d'une valeur qui détermine comment les droits sont hérités, d'une valeur qui détermine comment les droits sont propagés et d'une valeur qui spécifie s'il faut autoriser ou refuser l'opération.

Propriétés

AccessControlType

Obtient la valeur AccessControlType associée à cet objet AccessRule.

(Hérité de AccessRule)
AccessMask

Obtient le masque d’accès de cette règle.

(Hérité de AuthorizationRule)
FileSystemRights

Obtient les indicateurs FileSystemRights associés à l'objet FileSystemAccessRule en cours.

IdentityReference

Obtient l’objet IdentityReference auquel cette règle s’applique.

(Hérité de AuthorizationRule)
InheritanceFlags

Obtient la valeur des indicateurs qui déterminent comment cette règle est héritée par les objets enfants.

(Hérité de AuthorizationRule)
IsInherited

Obtient une valeur qui indique si cette règle est explicitement définie ou héritée d’un objet de conteneur parent.

(Hérité de AuthorizationRule)
PropagationFlags

Obtient la valeur des indicateurs de propagation, qui déterminent la façon dont l’héritage de cette règle est propagée aux objets enfants. Cette propriété est significative uniquement lorsque la valeur de l’énumération InheritanceFlags n’est pas None.

(Hérité de AuthorizationRule)

Méthodes

Equals(Object)

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

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

S’applique à