Freigeben über


FileSystemSecurity Klasse

Definition

Stellt die Zugriffssteuerung und Überwachungssicherheit für eine Datei oder ein Verzeichnis dar.

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

Beispiele

Im folgenden Codebeispiel wird die FileSecurity Klasse verwendet, um einen Zugriffssteuerungslisteneintrag (Access Control List, ACL) 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 FileSystemSecurity Klasse ist die Basisklasse für die FileSecurity und DirectorySecurity Klassen. Diese Klassen stellen alle Zugriffsrechte für eine Systemdatei oder ein Verzeichnis dar und definieren, wie Zugriffsversuche überwacht werden.

Die FileSystemSecurity Klasse stellt Zugriffs- und Überwachungsrechte als Eine Reihe von Regeln dar. Jede Zugriffsregel wird durch ein FileSystemAccessRule-Objekt dargestellt, während jede Überwachungsregel durch ein FileSystemAuditRule-Objekt dargestellt wird.

Die FileSystemSecurity Klasse ist eine Abstraktion des zugrunde liegenden Microsoft Windows-Dateisystems. In diesem System verfügt jede Datei oder jedes Verzeichnis über eine diskretionäre Zugriffssteuerungsliste (ACCESS Control List, DACL), die den Zugriff auf die Datei oder das Verzeichnis steuert, und eine Systemzugriffssteuerungsliste (SACL), die die überwachten Zugriffssteuerungsversuche angibt. Die klassen FileSystemAccessRule und FileSystemAuditRule sind Abstraktionen von Zugriffssteuerungseinträgen (ACCESS Control Entries, ACEs), die DACLs und SACLs umfassen.

Die FileSystemSecurity Klasse blendet viele Details von DACLs und SACLs aus; Sie müssen sich keine Gedanken über DIE ACE-Sortierung oder null DACLS machen.

Verwenden Sie die folgenden von der .NET-Implementierung abhängigen Methoden, um ACL-Informationen aus einer Datei hinzuzufügen oder abzurufen:

.NET-Implementierung Hinzufügen von Regeln Regeln abrufen
.NETTO FileSystemAclExtensions.SetAccessControl(FileInfo, FileSecurity) FileSystemAclExtensions.GetAccessControl(FileInfo)
.NET Framework FileInfo.SetAccessControl(FileSecurity) FileInfo.GetAccessControl()

Eigenschaften

AccessRightType

Ruft die Aufzählung ab, die von der FileSystemSecurity Klasse verwendet wird, um Zugriffsrechte darzustellen.

AccessRulesModified

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Zugriffsregeln, die diesem ObjectSecurity -Objekt zugeordnet sind, geändert wurden.

(Geerbt von ObjectSecurity)
AccessRuleType

Ruft die Aufzählung ab, die von der FileSystemSecurity Klasse verwendet wird, um Zugriffsregeln darzustellen.

AreAccessRulesCanonical

Ruft einen booleschen Wert ab, der angibt, ob die Zugriffsregeln, die diesem ObjectSecurity -Objekt zugeordnet sind, in kanonischer Reihenfolge sind.

(Geerbt von ObjectSecurity)
AreAccessRulesProtected

Ruft einen booleschen Wert ab, der angibt, ob die mit diesem ObjectSecurity-Objekt verknüpfte DACL (Discretionary Access Control List) geschützt ist.

(Geerbt von ObjectSecurity)
AreAuditRulesCanonical

Ruft einen booleschen Wert ab, der angibt, ob die Überwachungsregeln, die diesem ObjectSecurity -Objekt zugeordnet sind, in kanonischer Reihenfolge sind.

(Geerbt von ObjectSecurity)
AreAuditRulesProtected

Ruft einen booleschen Wert ab, der angibt, ob die SACL (System Access Control List), die diesem ObjectSecurity-Objekt zugeordnet ist, geschützt ist.

(Geerbt von ObjectSecurity)
AuditRulesModified

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Überwachungsregeln, die diesem ObjectSecurity -Objekt zugeordnet sind, geändert wurden.

(Geerbt von ObjectSecurity)
AuditRuleType

Ruft den Typ ab, den die FileSystemSecurity Klasse zum Darstellen von Überwachungsregeln verwendet.

GroupModified

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Gruppe, die dem sicherungsfähigen Objekt zugeordnet ist, geändert wurde.

(Geerbt von ObjectSecurity)
IsContainer

Ruft einen booleschen Wert ab, der angibt, ob es sich bei diesem ObjectSecurity-Objekt um ein Containerobjekt handelt.

(Geerbt von ObjectSecurity)
IsDS

Ruft einen booleschen Wert ab, der angibt, ob es sich bei diesem ObjectSecurity-Objekt um ein Verzeichnisobjekt handelt.

(Geerbt von ObjectSecurity)
OwnerModified

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob der Besitzer des sicherungsfähigen Objekts geändert wurde.

(Geerbt von ObjectSecurity)
SecurityDescriptor

Ruft den Sicherheitsdeskriptor für diese Instanz ab.

(Geerbt von ObjectSecurity)

Methoden

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

Initialisiert eine neue Instanz der FileSystemAccessRule Klasse, die eine neue Zugriffssteuerungsregel für den angegebenen Benutzer darstellt, mit den angegebenen Zugriffsrechten, zugriffssteuerung und Flags.

AddAccessRule(AccessRule)

Fügt der diesem CommonObjectSecurity-Objekt zugeordneten daCL (Discretionary Access Control List) die angegebene Zugriffsregel hinzu.

(Geerbt von CommonObjectSecurity)
AddAccessRule(FileSystemAccessRule)

Fügt der aktuellen Datei oder dem aktuellen Verzeichnis die berechtigung für die Zugriffssteuerungsliste (Access Control List, ACL) hinzu.

AddAuditRule(AuditRule)

Fügt die angegebene Überwachungsregel zur SACL (System Access Control List) hinzu, die diesem CommonObjectSecurity-Objekt zugeordnet ist.

(Geerbt von CommonObjectSecurity)
AddAuditRule(FileSystemAuditRule)

Fügt der aktuellen Datei oder dem aktuellen Verzeichnis die angegebene Überwachungsregel hinzu.

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

Initialisiert eine neue Instanz der FileSystemAuditRule Klasse, die die angegebene Überwachungsregel für den angegebenen Benutzer darstellt.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetAccessRules(Boolean, Boolean, Type)

Ruft eine Auflistung der Zugriffsregeln ab, die dem angegebenen Sicherheitsbezeichner zugeordnet sind.

(Geerbt von CommonObjectSecurity)
GetAuditRules(Boolean, Boolean, Type)

Ruft eine Auflistung der Überwachungsregeln ab, die dem angegebenen Sicherheitsbezeichner zugeordnet sind.

(Geerbt von CommonObjectSecurity)
GetGroup(Type)

Ruft die primäre Gruppe ab, die dem angegebenen Besitzer zugeordnet ist.

(Geerbt von ObjectSecurity)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetOwner(Type)

Ruft den Besitzer ab, der der angegebenen primären Gruppe zugeordnet ist.

(Geerbt von ObjectSecurity)
GetSecurityDescriptorBinaryForm()

Gibt ein Array von Bytewerten zurück, das die Sicherheitsbeschreibungsinformationen für dieses ObjectSecurity -Objekt darstellt.

(Geerbt von ObjectSecurity)
GetSecurityDescriptorSddlForm(AccessControlSections)

Gibt die SdDL-Darstellung (Security Descriptor Definition Language) der angegebenen Abschnitte des Sicherheitsdeskriptors zurück, der diesem ObjectSecurity-Objekt zugeordnet ist.

(Geerbt von ObjectSecurity)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ModifyAccess(AccessControlModification, AccessRule, Boolean)

Wendet die angegebene Änderung auf die mit diesem CommonObjectSecurity -Objekt verknüpfte Diskretionäre Zugriffssteuerungsliste (DACL) an.

(Geerbt von CommonObjectSecurity)
ModifyAccessRule(AccessControlModification, AccessRule, Boolean)

Wendet die angegebene Änderung auf die mit diesem ObjectSecurity -Objekt verknüpfte Diskretionäre Zugriffssteuerungsliste (DACL) an.

(Geerbt von ObjectSecurity)
ModifyAudit(AccessControlModification, AuditRule, Boolean)

Wendet die angegebene Änderung auf die sacL (System Access Control List) an, die diesem CommonObjectSecurity-Objekt zugeordnet ist.

(Geerbt von CommonObjectSecurity)
ModifyAuditRule(AccessControlModification, AuditRule, Boolean)

Wendet die angegebene Änderung auf die sacL (System Access Control List) an, die diesem ObjectSecurity-Objekt zugeordnet ist.

(Geerbt von ObjectSecurity)
Persist(Boolean, String, AccessControlSections)

Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem ObjectSecurity-Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der includeSections Parameter, die an den Konstruktor übergeben werden, und beibehaltene Methoden identisch sind.

(Geerbt von ObjectSecurity)
Persist(SafeHandle, AccessControlSections)

Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity-Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen.persistieren, dass die Werte der includeSections Parameter, die an den Konstruktor übergeben wurden, und beibehaltene Methoden identisch sind.

(Geerbt von NativeObjectSecurity)
Persist(SafeHandle, AccessControlSections, Object)

Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity-Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der includeSections Parameter, die an den Konstruktor übergeben werden, und beibehaltene Methoden identisch sind.

(Geerbt von NativeObjectSecurity)
Persist(String, AccessControlSections)

Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity-Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der includeSections Parameter, die an den Konstruktor übergeben werden, und beibehaltene Methoden identisch sind.

(Geerbt von NativeObjectSecurity)
Persist(String, AccessControlSections, Object)

Speichert die angegebenen Abschnitte des Sicherheitsdeskriptors, der diesem NativeObjectSecurity-Objekt zugeordnet ist, im permanenten Speicher. Es wird empfohlen, dass die Werte der includeSections Parameter, die an den Konstruktor übergeben werden, und beibehaltene Methoden identisch sind.

(Geerbt von NativeObjectSecurity)
PurgeAccessRules(IdentityReference)

Entfernt alle Zugriffsregeln, die dem angegebenen IdentityReferencezugeordnet sind.

(Geerbt von ObjectSecurity)
PurgeAuditRules(IdentityReference)

Entfernt alle Überwachungsregeln, die dem angegebenen IdentityReferencezugeordnet sind.

(Geerbt von ObjectSecurity)
ReadLock()

Sperrt dieses ObjectSecurity-Objekt für den Lesezugriff.

(Geerbt von ObjectSecurity)
ReadUnlock()

Entsperrt dieses ObjectSecurity-Objekts für den Lesezugriff.

(Geerbt von ObjectSecurity)
RemoveAccessRule(AccessRule)

Entfernt Zugriffsregeln, die denselben Sicherheitsbezeichner und dieselbe Zugriffsmaske wie die angegebene Zugriffsregel aus der diesem CommonObjectSecurity -Objekt zugeordneten DACL (Discretionary Access Control List) enthalten.

(Geerbt von CommonObjectSecurity)
RemoveAccessRule(FileSystemAccessRule)

Entfernt alle übereinstimmenden Zugriffssteuerungslistenberechtigungen (Access Control List, ACL) aus der aktuellen Datei oder dem aktuellen Verzeichnis.

RemoveAccessRuleAll(AccessRule)

Entfernt alle Zugriffsregeln, die denselben Sicherheitsbezeichner wie die angegebene Zugriffsregel haben, aus der mit diesem CommonObjectSecurity -Objekt verknüpften DaCL (Discretionary Access Control List) entfernt.

(Geerbt von CommonObjectSecurity)
RemoveAccessRuleAll(FileSystemAccessRule)

Entfernt alle Zugriffssteuerungslistenberechtigungen (Access Control List, ACL) für den angegebenen Benutzer aus der aktuellen Datei oder dem aktuellen Verzeichnis.

RemoveAccessRuleSpecific(AccessRule)

Entfernt alle Zugriffsregeln, die exakt der angegebenen Zugriffsregel aus der mit diesem CommonObjectSecurity -Objekt verknüpften DACL (Discretionary Access Control List) entsprechen.

(Geerbt von CommonObjectSecurity)
RemoveAccessRuleSpecific(FileSystemAccessRule)

Entfernt eine einzelne Übereinstimmungsberechtigung für die Zugriffssteuerungsliste (Access Control List, ACL) aus der aktuellen Datei oder dem aktuellen Verzeichnis.

RemoveAuditRule(AuditRule)

Entfernt Überwachungsregeln, die denselben Sicherheitsbezeichner und dieselbe Zugriffsmaske wie die angegebene Überwachungsregel aus der sacL (System Access Control List) enthalten, die diesem CommonObjectSecurity -Objekt zugeordnet ist.

(Geerbt von CommonObjectSecurity)
RemoveAuditRule(FileSystemAuditRule)

Entfernt alle übereinstimmenden Zulassungs- oder Verweigerungsregeln aus der aktuellen Datei oder dem aktuellen Verzeichnis.

RemoveAuditRuleAll(AuditRule)

Entfernt alle Überwachungsregeln mit demselben Sicherheitsbezeichner wie die angegebene Überwachungsregel aus der SACL (System Access Control List), die diesem CommonObjectSecurity -Objekt zugeordnet ist.

(Geerbt von CommonObjectSecurity)
RemoveAuditRuleAll(FileSystemAuditRule)

Entfernt alle Überwachungsregeln für den angegebenen Benutzer aus der aktuellen Datei oder dem aktuellen Verzeichnis.

RemoveAuditRuleSpecific(AuditRule)

Entfernt alle Überwachungsregeln, die exakt mit der angegebenen Überwachungsregel aus der SACL (System Access Control List) übereinstimmen, die diesem CommonObjectSecurity -Objekt zugeordnet ist.

(Geerbt von CommonObjectSecurity)
RemoveAuditRuleSpecific(FileSystemAuditRule)

Entfernt eine einzelne Übereinstimmungsregel zur Zulassung oder Ablehnung der Überwachungsregel aus der aktuellen Datei oder dem aktuellen Verzeichnis.

ResetAccessRule(AccessRule)

Entfernt alle Zugriffsregeln in der mit diesem CommonObjectSecurity -Objekt verknüpften DaCL (Discretionary Access Control List) und fügt dann die angegebene Zugriffsregel hinzu.

(Geerbt von CommonObjectSecurity)
ResetAccessRule(FileSystemAccessRule)

Fügt der aktuellen Datei oder dem aktuellen Verzeichnis die berechtigung für die angegebene Zugriffssteuerungsliste (Access Control List, ACL) hinzu und entfernt alle übereinstimmenden ACL-Berechtigungen.

SetAccessRule(AccessRule)

Entfernt alle Zugriffsregeln, die denselben Sicherheitsbezeichner und Qualifizierer wie die angegebene Zugriffsregel in der diesem CommonObjectSecurity -Objekt zugeordneten DACL (Discretionary Access Control List) enthalten, und fügt dann die angegebene Zugriffsregel hinzu.

(Geerbt von CommonObjectSecurity)
SetAccessRule(FileSystemAccessRule)

Legt die angegebene Zugriffssteuerungsliste (Access Control List, ACL)-Berechtigung für die aktuelle Datei oder das aktuelle Verzeichnis fest.

SetAccessRuleProtection(Boolean, Boolean)

Legt fest oder entfernt den Schutz der Zugriffsregeln, die diesem ObjectSecurity -Objekt zugeordnet sind. Geschützte Zugriffsregeln können nicht durch Vererbung von übergeordneten Objekten geändert werden.

(Geerbt von ObjectSecurity)
SetAuditRule(AuditRule)

Entfernt alle Überwachungsregeln, die denselben Sicherheitsbezeichner und Qualifizierer enthalten wie die angegebene Überwachungsregel in der SACL (System Access Control List), die diesem CommonObjectSecurity -Objekt zugeordnet ist, und fügt dann die angegebene Überwachungsregel hinzu.

(Geerbt von CommonObjectSecurity)
SetAuditRule(FileSystemAuditRule)

Legt die angegebene Überwachungsregel für die aktuelle Datei oder das aktuelle Verzeichnis fest.

SetAuditRuleProtection(Boolean, Boolean)

Legt den Schutz der Überwachungsregeln fest oder entfernt sie, die diesem ObjectSecurity-Objekt zugeordnet sind. Geschützte Überwachungsregeln können nicht durch vererbung von übergeordneten Objekten geändert werden.

(Geerbt von ObjectSecurity)
SetGroup(IdentityReference)

Legt die primäre Gruppe für den Sicherheitsdeskriptor fest, der diesem ObjectSecurity-Objekt zugeordnet ist.

(Geerbt von ObjectSecurity)
SetOwner(IdentityReference)

Legt den Besitzer für den Sicherheitsdeskriptor fest, der diesem ObjectSecurity -Objekt zugeordnet ist.

(Geerbt von ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[])

Legt den Sicherheitsdeskriptor für dieses ObjectSecurity -Objekt aus dem angegebenen Array von Bytewerten fest.

(Geerbt von ObjectSecurity)
SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

Legt die angegebenen Abschnitte des Sicherheitsdeskriptors für dieses ObjectSecurity -Objekt aus dem angegebenen Array von Bytewerten fest.

(Geerbt von ObjectSecurity)
SetSecurityDescriptorSddlForm(String)

Legt den Sicherheitsdeskriptor für dieses ObjectSecurity -Objekt aus der angegebenen SDDL-Zeichenfolge (Security Descriptor Definition Language) fest.

(Geerbt von ObjectSecurity)
SetSecurityDescriptorSddlForm(String, AccessControlSections)

Legt die angegebenen Abschnitte des Sicherheitsdeskriptors für dieses ObjectSecurity -Objekt aus der angegebenen SDDL-Zeichenfolge (Security Descriptor Definition Language) fest.

(Geerbt von ObjectSecurity)
ToString()

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

(Geerbt von Object)
WriteLock()

Sperrt dieses ObjectSecurity -Objekts für den Schreibzugriff.

(Geerbt von ObjectSecurity)
WriteUnlock()

Entsperrt dieses ObjectSecurity-Objekts für den Schreibzugriff.

(Geerbt von ObjectSecurity)

Gilt für: