(0) exportieren Drucken
Alle erweitern

FileSystemSecurity-Klasse

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

Namespace: System.Security.AccessControl
Assembly: mscorlib (in mscorlib.dll)

public abstract class FileSystemSecurity : NativeObjectSecurity
public abstract class FileSystemSecurity extends NativeObjectSecurity
public abstract class FileSystemSecurity extends NativeObjectSecurity
Nicht zutreffend.

Die FileSystemSecurity-Klasse ist die Basisklasse für die FileSecurity-Klasse und die DirectorySecurity-Klasse. Mit diesen Klassen werden alle Zugriffsrechte für eine Systemdatei oder ein -verzeichnis dargestellt, und es wird definiert, wie Zugriffsversuche überwacht werden.

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

Die FileSystemSecurity-Klasse ist eine Abstraktion des zugrunde liegenden Dateisicherheitssystems von Microsoft Windows. In diesem System verfügt jede Datei bzw. jedes Verzeichnis über eine freigegebene Zugriffssteuerungsliste (DACL – Discretionary Access Control List), mit der der Zugriff auf die Datei oder das Verzeichnis gesteuert wird, sowie über eine Systemzugriffssteuerungsliste (SACL – System Access Control List), mit der die überwachten Zugriffssteuerungsversuche angegeben werden. Die FileSystemAccessRule-Klasse und die FileSystemAuditRule-Klasse sind Abstraktionen von Zugriffssteuerungseinträgen (ACEs – Access Control Entries), zu denen DACLs und SACLs gehören.

Die FileSystemSecurity-Klasse blendet viele Details von DACLs und SACLs aus. Es sind keine Überlegungen zur ACE-Reihenfolge und zu NULL-DACLs notwendig.

Behalten Sie neue oder geänderte ACL-Informationen in einer Datei mithilfe der SetAccessControl-Methode oder der SetAccessControl-Methode bei. Behalten Sie neue oder geänderte ACL-Informationen für ein Verzeichnis mithilfe der SetAccessControl-Methode oder der SetAccessControl-Methode bei.

Rufen Sie ACL-Informationen mithilfe der GetAccessControl-Methode oder der GetAccessControl-Methode aus einer Datei ab. Rufen Sie ACL-Informationen mithilfe der GetAccessControl-Methode oder der GetAccessControl-Methode aus einem Verzeichnis ab.

Im folgenden Codebeispiel wird die FileSecurity-Klasse verwendet, um einer Datei einen ACL-Eintrag hinzuzufügen und diesen dann wieder aus der Datei 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)
        {
            

            // Get a FileSecurity object that represents the 
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Add the FileSystemAccessRule to the security settings. 
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, 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)
        {

            // Get a FileSecurity object that represents the 
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Add the FileSystemAccessRule to the security settings. 
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, fSecurity);

        }
    }
}

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen:
© 2014 Microsoft