Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

FileIOPermission-Klasse

Steuert den Zugriff auf Dateien und Ordner. Diese Klasse kann nicht vererbt werden.

System.Object
  System.Security.CodeAccessPermission
    System.Security.Permissions.FileIOPermission

Namespace:  System.Security.Permissions
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class FileIOPermission : CodeAccessPermission, 
	IUnrestrictedPermission

Der FileIOPermission-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode FileIOPermission(PermissionState) Initialisiert eine neue Instanz der FileIOPermission-Klasse mit vollkommen eingeschränkter oder uneingeschränkter Berechtigung, wie angegeben.
Öffentliche Methode FileIOPermission(FileIOPermissionAccess, String) Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die bezeichnete Datei oder das bezeichnete Verzeichnis.
Öffentliche Methode FileIOPermission(FileIOPermissionAccess, String[]) Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die bezeichneten Dateien und Verzeichnisse.
Öffentliche Methode FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die bezeichnete Datei oder das bezeichnete Verzeichnis und den angegebenen Zugriffsrechten auf Dateisteuerungsinformationen.
Öffentliche Methode FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[]) Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die bezeichneten Dateien und Verzeichnisse und den angegebenen Zugriffsrechten auf Dateisteuerungsinformationen.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft AllFiles Ruft den gewährten Zugriff auf alle Dateien ab oder legt diesen fest.
Öffentliche Eigenschaft AllLocalFiles Ruft den gewährten Zugriff auf alle lokalen Dateien ab oder legt diesen fest.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode AddPathList(FileIOPermissionAccess, String) Fügt dem derzeitigen Berechtigungszustand den Zugriff auf die angegebene Datei oder das angegebene Verzeichnis hinzu.
Öffentliche Methode AddPathList(FileIOPermissionAccess, String[]) Fügt dem derzeitigen Berechtigungszustand den Zugriff auf die angegebenen Dateien und Verzeichnisse hinzu.
Öffentliche Methode Assert Deklariert, dass der aufrufende Code selbst dann auf die durch eine Berechtigungsanforderung geschützte Ressource über den diese Methode aufrufenden Code zugreifen kann, wenn übergeordnete Aufrufer in der Aufrufliste keine Zugriffsberechtigung für die Ressource besitzen. Die Verwendung von Assert kann zu Sicherheitsproblemen führen. (Von CodeAccessPermission geerbt.)
Öffentliche Methode Copy Erstellt eine identische Kopie der aktuellen Berechtigung und gibt die Kopie zurück. (Überschreibt CodeAccessPermission.Copy().)
Öffentliche Methode Demand Erzwingt zur Laufzeit eine SecurityException, wenn die von der aktuellen Instanz angegebene Berechtigung keinem übergeordneten Aufrufer in der Aufrufliste gewährt wurde. (Von CodeAccessPermission geerbt.)
Öffentliche Methode Deny Veraltet. Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf die von der aktuellen Instanz angegebene Ressource über Code zugreifen, der diese Methode aufruft. (Von CodeAccessPermission geerbt.)
Öffentliche Methode Equals Bestimmt, ob das angegebene FileIOPermission-Objekt und das aktuelle FileIOPermission-Objekt gleich sind. (Überschreibt CodeAccessPermission.Equals(Object).)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode FromXml Rekonstruiert aus einer XML-Codierung eine Berechtigung mit einem angegebenen Zustand. (Überschreibt CodeAccessPermission.FromXml(SecurityElement).)
Öffentliche Methode GetHashCode Ruft einen Hashcode für das FileIOPermission-Objekt ab, das für die Verwendung in Hashalgorithmen und Datenstrukturen wie Hashtabellen geeignet ist. (Überschreibt CodeAccessPermission.GetHashCode().)
Öffentliche Methode GetPathList Ruft alle Dateien und Verzeichnisse mit dem angegebenen FileIOPermissionAccess ab.
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Intersect Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück. (Überschreibt CodeAccessPermission.Intersect(IPermission).)
Öffentliche Methode IsSubsetOf Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist. (Überschreibt CodeAccessPermission.IsSubsetOf(IPermission).)
Öffentliche Methode IsUnrestricted Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode PermitOnly Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf alle außer der von der aktuellen Instanz angegebenen Ressource über den Code zugreifen, der diese Methode aufruft. (Von CodeAccessPermission geerbt.)
Öffentliche Methode SetPathList(FileIOPermissionAccess, String) Legt den angegebenen Zugriff auf die angegebene Datei oder das angegebene Verzeichnis fest und ersetzt den derzeitigen Berechtigungszustand.
Öffentliche Methode SetPathList(FileIOPermissionAccess, String[]) Legt den angegebnen Zugriff auf die angegebenen Dateien und Verzeichnisse fest und ersetzt den aktuellen Zustand für den angegebenen Zugriff durch die neue Gruppe von Pfaden.
Öffentliche Methode ToString Erstellt eine Zeichenfolgenentsprechung des aktuellen Berechtigungsobjekts und gibt diese zurück. (Von CodeAccessPermission geerbt.)
Öffentliche Methode ToXml Erstellt eine XML-Codierung der Berechtigung und ihres aktuellen Zustands. (Überschreibt CodeAccessPermission.ToXml().)
Öffentliche Methode Union Erstellt eine Berechtigung als Gesamtmenge der aktuellen und der angegebenen Berechtigung. (Überschreibt CodeAccessPermission.Union(IPermission).)
Zum Seitenanfang

Diese Berechtigung unterscheidet zwischen den folgenden vier Typen von E/A-Dateizugriff, die durch FileIOPermissionAccess bereitgestellt werden:

  • Read: Lesezugriff auf den Dateiinhalt oder auf Informationen über die Datei, z. B. deren Größe oder den Zeitpunkt der letzten Änderung.

  • Write: Schreibzugriff auf den Inhalt der Datei oder auf Informationen über die Datei, um z. B den Dateinamen ändern zu können. Lässt außerdem Löschen und Überschreiben zu.

  • Append: Nur die Möglichkeit zum Schreiben am Dateiende. Kein Lesezugriff.

  • PathDiscovery: Zugriff auf die Informationen im Pfad selbst. Dadurch werden vertrauliche Informationen im Pfad (z. B. Benutzernamen) oder Informationen zur Verzeichnisstruktur geschützt, die im Pfad erkennbar sind. Dieser Wert gewährt keinen Zugriff auf Dateien oder Ordner, die durch den Pfad dargestellt werden.

Hinweis Hinweis

Das Gewähren von Zugriff für Write auf eine Assembly ähnelt dem Gewähren vollständiger Vertrauenswürdigkeit. Wenn eine Anwendung nicht ins Dateisystem schreiben soll, sollte sie keinen Write-Zugriff haben.

Alle diese Berechtigungen sind von einander unabhängig. Dies bedeutet, dass ein bestimmter Typ von Zugriffsberechtigung keine andere Berechtigung voraussetzt. Eine Write-Berechtigung z. B. setzt keine Read-Berechtigung oder Append-Berechtigung voraus. Wenn mehrere Berechtigungen gewährt werden sollen, können diese mithilfe der bitweisen OR-Operation verknüpft werden, wie im folgenden Codebeispiel gezeigt. Dateiberechtigungen werden in Form von eindeutigen, absoluten Pfaden definiert. Aufrufe sollten immer mit eindeutigen Dateipfaden durchgeführt werden.

FileIOPermission beschreibt geschützte Operationen für Dateien und Ordner. Die File-Klasse bietet sicheren Zugriff auf Dateien und Ordner. Die Sicherheitsüberprüfung des Zugriffs erfolgt bei der Erstellung des Handles für die Datei. Die sich aus der Sicherheitsüberprüfung ergebende Leistungsbeeinträchtigung wird verringert, wenn die Überprüfung zur Erstellungszeit durchgeführt wird. Das Öffnen einer Datei ist ein einmaliger Vorgang, während Lese- und Schreibvorgänge in einer geöffneten Datei mehrmals erfolgen können. Sobald die Datei geöffnet ist, werden keine weiteren Überprüfungen durchgeführt. Das Objekt wird möglicherweise missbraucht, wenn es an einen nicht vertrauenswürdigen Aufrufer übergeben wird. Dateihandles sollten z. B. nicht in öffentlichen globalen statischen Feldern gespeichert werden, in denen Code mit geringeren Berechtigungen auf die Handles zugreifen kann.

FileIOPermissionAccess gibt Aktionen an, die für die Datei oder den Ordner ausgeführt werden können. Darüber hinaus können diese Aktionen mit der bitweisen OR-Operation zu komplexen Instanzen verbunden werden.

Beim Zugriff auf einen Ordner wird ebenfalls der Zugriff auf die darin enthaltenen Dateien sowie auf sämtliche Dateien und Ordner in den untergeordneten Ordnern gewährt. Beispielsweise wird beim Read-Zugriff auf C:\Ordner1\ auch Read-Zugriff auf C:\Ordner1\Datei1.txt, C:\Ordner1\Ordner2\, C:\Ordner1\Ordner2\Datei2.txt usw. gewährt.

Hinweis Hinweis

In Versionen von .NET Framework vor .NET Framework, Version 4 konnten Sie unbeabsichtigten Zugriff auf Systemressourcen durch vertrauenswürdigen Code mithilfe der CodeAccessPermission.Deny-Methode verhindern. Deny ist jetzt veraltet und der Zugriff auf Ressourcen wird jetzt ausschließlich durch den für eine Assembly gewährten Berechtigungssatz bestimmt. Um den Zugriff auf Dateien einzuschränken, müssen Sie teilweise vertrauenswürdigen Code in einer Sandbox ausführen und dieser Berechtigungen nur für Ressourcen zuweisen, auf die der Code Zugriff haben soll. Weitere Informationen zur Ausführung einer Anwendung in einer Sandbox finden Sie unter Gewusst wie: Ausführen von teilweise vertrauenswürdigem Code in einer Sandbox.

Die folgenden Beispiele veranschaulichen den von FileIOPermission verwendeten Code. Nach den folgenden beiden Zeilen Code stellt das Objekt f die Berechtigung zum Lesen aller Dateien auf den lokalen Datenträgern des Clientcomputers dar. Im Codebeispiel wird dann die Berechtigung angefordert, um festzustellen, ob die Anwendung über die Berechtigung zum Lesen der Dateien verfügt.


            FileIOPermission f = new FileIOPermission(PermissionState.None);
            f.AllLocalFiles = FileIOPermissionAccess.Read;
            try
            {
                f.Demand();
            }
            catch (SecurityException s)
            {
                Console.WriteLine(s.Message);
            }



Nach den folgenden zwei Codezeilen stellt das Objekt f2 Berechtigungen dar, C:\test_r zu lesen und in C:\example\out.txt zu lesen und darin zu schreiben. Read und Write stellen die Datei-/Ordnerberechtigungen wie zuvor beschrieben dar. Nach dem Erstellen der Berechtigung fordert der Code die Berechtigung an, um festzustellen, ob die Anwendung über die Berechtigung zum Lesen und Schreiben für die Datei verfügt.


FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
try
{
    f2.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ