FileSystemAccessRule Klasse

Definition

Stellt eine Abstraktion eines Zugriffssteuerungseintrags (Access Control Entry, ACE) dar, der eine Zugriffsregel für eine Datei oder ein Verzeichnis definiert. Diese Klasse kann nicht vererbt werden.

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
Vererbung
FileSystemAccessRule
Attribute

Beispiele

Im folgenden Codebeispiel wird die FileSecurity Klasse verwendet, um einen Zugriffssteuerungseintrag (Access Control Entry, ACE) aus einer Datei hinzuzufügen und daraus zu entfernen. Sie müssen ein gültiges Benutzer- oder Gruppenkonto angeben, um dieses Beispiel auszuführen.

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

Hinweise

Die FileSystemAccessRule Klasse stellt eine Abstraktion eines zugrunde liegenden Zugriffssteuerungseintrags (Access Control Entry, ACE) dar, der ein Benutzerkonto, den Typ des bereitzustellenden Zugriffs (Lesen, Schreiben usw.) angibt und ob diese Berechtigung zugelassen oder verweigert werden soll. Diese Klasse kann auch angeben, wie Zugriffsregeln an untergeordnete Objekte weitergegeben werden.

Verwenden Sie die FileSystemAccessRule Klasse, um eine neue Zugriffsregel zu erstellen. Sie können die Regel mithilfe der Klasse oder FileSecurity der DirectorySecurity Regel beibehalten.

Konstruktoren

Name Beschreibung
FileSystemAccessRule(IdentityReference, FileSystemRights, AccessControlType)

Initialisiert eine neue Instanz der FileSystemAccessRule Klasse mithilfe eines Verweises auf ein Benutzerkonto, einen Wert, der den Typ des Vorgangs angibt, der der Zugriffsregel zugeordnet ist, und einen Wert, der angibt, ob der Vorgang zugelassen oder verweigert werden soll.

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

Initialisiert eine neue Instanz der FileSystemAccessRule Klasse mithilfe eines Verweises auf ein Benutzerkonto, einen Wert, der den Typ des Vorgangs angibt, der der Zugriffsregel zugeordnet ist, einen Wert, der bestimmt, wie Rechte geerbt werden, ein Wert, der bestimmt, wie Rechte weitergegeben werden, und ein Wert, der angibt, ob der Vorgang zugelassen oder verweigert werden soll.

FileSystemAccessRule(String, FileSystemRights, AccessControlType)

Initialisiert eine neue Instanz der FileSystemAccessRule Klasse mithilfe des Namens eines Benutzerkontos, eines Werts, der den Typ des Vorgangs angibt, der der Zugriffsregel zugeordnet ist, und einen Wert, der beschreibt, ob der Vorgang zugelassen oder verweigert werden soll.

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

Initialisiert eine neue Instanz der FileSystemAccessRule Klasse mit dem Namen eines Benutzerkontos, einem Wert, der den Typ des Vorgangs angibt, der der Zugriffsregel zugeordnet ist, einen Wert, der bestimmt, wie Rechte geerbt werden, ein Wert, der bestimmt, wie Rechte weitergegeben werden, und einen Wert, der angibt, ob der Vorgang zugelassen oder verweigert werden soll.

Eigenschaften

Name Beschreibung
AccessControlType

Ruft den AccessControlType diesem AccessRule Objekt zugeordneten Wert ab.

(Geerbt von AccessRule)
AccessMask

Ruft die Zugriffsmaske für diese Regel ab.

(Geerbt von AuthorizationRule)
FileSystemRights

Ruft die FileSystemRights Flags ab, die dem aktuellen FileSystemAccessRule Objekt zugeordnet sind.

IdentityReference

Ruft ab IdentityReference , auf die diese Regel angewendet wird.

(Geerbt von AuthorizationRule)
InheritanceFlags

Ruft den Wert von Flags ab, die bestimmen, wie diese Regel von untergeordneten Objekten geerbt wird.

(Geerbt von AuthorizationRule)
IsInherited

Ruft einen Wert ab, der angibt, ob diese Regel explizit festgelegt oder von einem übergeordneten Containerobjekt geerbt wird.

(Geerbt von AuthorizationRule)
PropagationFlags

Ruft den Wert der Verteilungskennzeichnungen ab, die bestimmen, wie die Vererbung dieser Regel an untergeordnete Objekte weitergegeben wird. Diese Eigenschaft ist nur dann wichtig, wenn der Wert der InheritanceFlags Enumeration nicht Noneist.

(Geerbt von AuthorizationRule)

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: