(0) exportieren Drucken
Alle erweitern

FileSystemAccessRule-Klasse

Aktualisiert: November 2007

Stellt eine Abstaktion eines Zugriffssteuerungseintrags (Access Control Entry - ACE) dar, der Zugriffsregeln für eine Datei oder ein Verzeichnis darstellt. Diese Klasse kann nicht geerbt werden.

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

public sealed class FileSystemAccessRule : AccessRule
public final class FileSystemAccessRule extends AccessRule
public final class FileSystemAccessRule extends AccessRule

Die FileSystemAccessRule-Klasse stellt eine Abstraktion des zugrunde liegenden ACE dar. Ein ACE besteht aus einem Benutzerkonto, der Zugriffsart (lesen, schreiben usw.) und der Angabe, ob dieses Recht gewährt oder verweigert werden soll. Mit dieser Klasse kann auch angeben werden, wie Zugriffsregeln an untergeordnete Objekte weitergegeben werden.

Verwenden Sie die FileSystemAccessRule-Klasse zum Erstellen einer neuen Zugriffsregel. Sie können die Regel mit der FileSecurity-Klasse oder der DirectorySecurity-Klasse beibehalten.

Im folgenden Codebeispiel wird die FileSecurity-Klasse verwendet, um einer Datei ein Zugriffssteuerungseintrag (ACE) hinzuzufügen und dann wieder 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);

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

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

        }
    }
}


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

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft