(0) exportieren Drucken
Alle erweitern

File.GetAccessControl-Methode (String)

Ruft ein FileSecurity-Objekt ab, das die ACL-Einträge für eine angegebene Datei kapselt.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

public static FileSecurity GetAccessControl (
	string path
)
public static FileSecurity GetAccessControl (
	String path
)
public static function GetAccessControl (
	path : String
) : FileSecurity
Nicht zutreffend.

Parameter

path

Der Pfad zu einer Datei, die ein FileSecurity-Objekt enthält, das die ACL-Informationen der Datei beschreibt.

Rückgabewert

Ein FileSecurity-Objekt, das die Zugriffssteuerungsregeln für die vom path-Parameter beschriebene Datei kapselt.

AusnahmetypBedingung

IOException

E/A-Fehler beim Öffnen der Datei.

SEHException

Der path-Parameter ist NULL-Verweis (Nothing in Visual Basic).

SystemException

Die Datei konnte nicht gefunden werden.

UnauthorizedAccessException

Der path-Parameter hat eine schreibgeschützte Datei angegeben.

- oder -

Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.

- oder -

Der path-Parameter hat ein Verzeichnis angegeben.

- oder -

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Verwenden Sie die GetAccessControl-Methode, um die ACL-Einträge für eine Datei abzurufen.

Eine ACL beschreibt einzelne Benutzer und/oder Gruppen, die über Rechte für bestimmte Aktionen für die angegebene Datei verfügen oder nicht verfügen. Weitere Informationen finden Sie unter Übersicht über die ACL-Technologie und unter Gewusst wie: Hinzufügen oder Entfernen von Zugriffssteuerungslisten-Einträgen.

In NTFS-Umgebungen werden dem Benutzer ReadAttributes und ReadExtendedAttributes gewährt, wenn der Benutzer über ListDirectory-Rechte für den übergeordneten Ordner verfügt. Um ReadAttributes und ReadExtendedAttributes zu verweigern, verweigern Sie ListDirectory für das übergeordnete Verzeichnis.

Im folgenden Codebeispiel werden die GetAccessControl-Methode und die SetAccessControl-Methode verwendet, um einer Datei einen ACL (Access Control List)-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);

        }
    }
}

  • FileIOPermission  für die Berechtigung zum Lesen der Zugriffssteuerungsliste. Zugeordnete Enumerationen: NoAccess, View Sicherheitsaktion: Anforderung.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, 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