FileIOPermission Klasse

Definition

Achtung

Code Access Security is not supported or honored by the runtime.

Steuert die Fähigkeit, auf Dateien und Ordner zuzugreifen. Diese Klasse kann nicht vererbt werden.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Vererbung
FileIOPermission
Attribute
Implementiert

Beispiele

Die folgenden Beispiele veranschaulichen Code, der verwendet FileIOPermission. Nach den folgenden zwei Codezeilen 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 zu bestimmen, ob die Anwendung über die Berechtigung zum Lesen der Dateien verfügt.

FileIOPermission^ f = gcnew FileIOPermission( PermissionState::None );
f->AllLocalFiles = FileIOPermissionAccess::Read;
try
{
    f->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
    f.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}
Dim f As New FileIOPermission(PermissionState.None)
f.AllLocalFiles = FileIOPermissionAccess.Read
Try
    f.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Nach den folgenden zwei Codezeilen stellt das -Objekt f2 Berechtigungen zum Lesen von C:\test_r sowie zum Lesen und Schreiben in C:\example\out.txt dar. Read und Write stellen die Datei-/Ordnerberechtigungen wie zuvor beschrieben dar. Nach dem Erstellen der Berechtigung fordert der Code die Berechtigung an, um zu bestimmen, ob die Anwendung das Recht hat, die Datei zu lesen und in die Datei zu schreiben.

FileIOPermission^ f2 = gcnew FileIOPermission( FileIOPermissionAccess::Read,"C:\\test_r" );
f2->AddPathList( (FileIOPermissionAccess) (FileIOPermissionAccess::Write | FileIOPermissionAccess::Read), "C:\\example\\out.txt" );
try
{
    f2->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
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);
}
Dim f2 As New FileIOPermission(FileIOPermissionAccess.Read, "C:\test_r")
f2.AddPathList(FileIOPermissionAccess.Write Or FileIOPermissionAccess.Read, "C:\example\out.txt")
Try
    f2.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Hinweise

Achtung

Die Codezugriffssicherheit (CAS, Code Access Security) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler*innen sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

Diese Berechtigung unterscheidet zwischen den folgenden vier Arten von Datei-E/A-Zugriff, die von bereitgestellt werden FileIOPermissionAccess:

  • Read: Lesezugriff auf den Inhalt der Datei oder Zugriff auf Informationen zur Datei, z. B. länge oder Zeitpunkt der letzten Änderung.

  • Write: Schreibzugriff auf den Inhalt der Datei oder Zugriff, um Informationen zur Datei zu ändern, z. B. ihren Namen. Ermöglicht auch das Löschen und Überschreiben.

  • Append: Die Möglichkeit, nur an das Ende einer Datei zu schreiben. Keine Lesemöglichkeit.

  • PathDiscovery: Zugriff auf die Informationen im Pfad selbst. Dies trägt zum Schutz vertraulicher Informationen im Pfad bei, z. B. Benutzernamen, sowie Informationen zur Verzeichnisstruktur, die im Pfad angezeigt wird. Dieser Wert gewährt keinen Zugriff auf Dateien oder Ordner, die durch den Pfad dargestellt werden.

Hinweis

Das Gewähren Write des Zugriffs auf eine Assembly ähnelt dem Gewähren vollständiger Vertrauenswürdig vertrauenswürdiger Assemblys. Wenn eine Anwendung nicht in das Dateisystem schreiben soll, sollte sie keinen Zugriff haben Write .

Alle diese Berechtigungen sind unabhängig, was bedeutet, dass Rechte für eine andere nicht bedeuten. Beispielsweise Write impliziert die Berechtigung nicht die Berechtigung für Read oder Append. Wenn mehr als eine Berechtigung gewünscht ist, können sie mithilfe eines bitweisen OR kombiniert werden, wie im folgenden Codebeispiel gezeigt. Die Dateiberechtigung ist als kanonische absolute Pfade definiert. Aufrufe sollten immer mit kanonischen Dateipfaden erfolgen.

FileIOPermission beschreibt geschützte Vorgänge für Dateien und Ordner. Die File -Klasse bietet sicheren Zugriff auf Dateien und Ordner. Die Sicherheitszugriffsprüfung wird ausgeführt, wenn das Handle für die Datei erstellt wird. Durch die Überprüfung bei der Erstellung werden die Auswirkungen der Sicherheitsüberprüfung auf die Leistung minimiert. Das Öffnen einer Datei erfolgt einmal, während Lese- und Schreibvorgänge mehrmals erfolgen können. Nachdem die Datei geöffnet wurde, werden keine weiteren Überprüfungen durchgeführt. Wenn das Objekt an einen nicht vertrauenswürdigen Aufrufer übergeben wird, kann es missbraucht werden. Beispielsweise sollten Dateihandles nicht in öffentlichen globalen Statischen gespeichert werden, in denen Code mit weniger Berechtigungen darauf 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 mithilfe eines bitweisen OR kombiniert werden, um komplexe Instanzen zu bilden.

Der Zugriff auf einen Ordner impliziert den Zugriff auf alle darin enthaltenen Dateien sowie den Zugriff auf alle Dateien und Ordner in seinen Unterordnern. Der Zugriff auf C:\ordner1\ impliziert Read beispielsweise Read Zugriff auf C:\folder1\file1.txt, C:\Ordner1\Ordner2\, C:\folder1\folder2\file2.txt usw.

Hinweis

In Versionen der .NET Framework vor dem .NET Framework 4 können Sie die CodeAccessPermission.Deny -Methode verwenden, um unbeabsichtigten Zugriff auf Systemressourcen durch vertrauenswürdigen Code zu verhindern. Deny ist jetzt veraltet, und der Zugriff auf Ressourcen wird jetzt ausschließlich durch die erteilten Berechtigungen bestimmt, die für eine Assembly festgelegt wurden. Um den Zugriff auf Dateien einzuschränken, müssen Sie teilweise vertrauenswürdigen Code in einer Sandbox ausführen und ihm nur Ressourcen Berechtigungen zuweisen, auf die der Code zugreifen darf. Informationen zum Ausführen einer Anwendung in einer Sandbox finden Sie unter Vorgehensweise: Ausführen von teilweise vertrauenswürdigem Code in einer Sandbox.

Konstruktoren

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Veraltet.

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegte Datei oder das Verzeichnis und den angegebenen Zugriffsrechten auf Dateisteuerungsinformationen.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Veraltet.

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegten Dateien und Verzeichnisse und den angegebenen Zugriffsrechten auf Dateisteuerungsinformationen.

FileIOPermission(FileIOPermissionAccess, String)
Veraltet.

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegte Datei oder das festgelegte Verzeichnis.

FileIOPermission(FileIOPermissionAccess, String[])
Veraltet.

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegten Dateien und Verzeichnisse.

FileIOPermission(PermissionState)
Veraltet.

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit vollständig eingeschränkter oder uneingeschränkter Berechtigung, wie angegeben.

Eigenschaften

AllFiles
Veraltet.

Dient zum Abrufen oder Festlegen des Zugriffs auf alle Dateien.

AllLocalFiles
Veraltet.

Dient zum Abrufen oder Festlegen des gewährten Zugriffs auf alle lokalen Dateien.

Methoden

AddPathList(FileIOPermissionAccess, String)
Veraltet.

Fügt dem vorhandenen Zustand der Berechtigung den Zugriff für die angegebene Datei oder das angegebene Verzeichnis hinzu.

AddPathList(FileIOPermissionAccess, String[])
Veraltet.

Fügt dem vorhandenen Zustand der Berechtigung den Zugriff für die angegebenen Dateien und Verzeichnisse hinzu.

Assert()
Veraltet.

Deklariert, dass der aufrufende Code auf die durch eine Berechtigungsforderung geschützte Ressource über den diese Methode aufrufenden Code zugreifen kann, auch wenn Aufrufern einer höheren Ebene im Stapel keine Berechtigung zum Zugreifen auf die Ressource erteilt wurde. Die Verwendung von Assert() kann zu Sicherheitsproblemen führen.

(Geerbt von CodeAccessPermission)
Copy()
Veraltet.

Erstellt eine identische Kopie der aktuellen Berechtigung und gibt sie zurück.

Demand()
Veraltet.

Erzwingt zur Laufzeit eine SecurityException, wenn nicht allen Aufrufern, die in der Aufrufliste höher eingestuft sind, die Berechtigung gewährt wurde, die von der aktuellen Instanz angegeben wird.

(Geerbt von CodeAccessPermission)
Deny()
Veraltet.
Veraltet.

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code verwenden, der diese Methode aufruft, um auf die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.

(Geerbt von CodeAccessPermission)
Equals(Object)
Veraltet.

Bestimmt, ob das angegebene FileIOPermission-Objekt und das aktuelle FileIOPermission-Objekt gleich sind.

Equals(Object)
Veraltet.

Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind.

(Geerbt von CodeAccessPermission)
FromXml(SecurityElement)
Veraltet.

Stellt eine Berechtigung mit einem angegebenen Zustand aus einer XML-Codierung wieder her.

GetHashCode()
Veraltet.

Ruft einen Hashcode für das FileIOPermission-Objekt ab, das sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z.B. in einer Hashtabelle.

GetHashCode()
Veraltet.

Ruft einen Hashcode für das CodeAccessPermission-Objekt ab, das sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z.B. in einer Hashtabelle.

(Geerbt von CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Veraltet.

Ruft alle Dateien und Verzeichnisse mit dem angegebenen FileIOPermissionAccess ab.

GetType()
Veraltet.

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Intersect(IPermission)
Veraltet.

Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück.

IsSubsetOf(IPermission)
Veraltet.

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.

IsUnrestricted()
Veraltet.

Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist.

MemberwiseClone()
Veraltet.

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
PermitOnly()
Veraltet.

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code, der diese Methode aufruft, verwenden, um auf alle Ressourcen außer die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.

(Geerbt von CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Veraltet.

Legt den angegebenen Zugriff auf die angegebene Datei oder das angegebene Verzeichnis fest und ersetzt den vorhandenen Zustand der Berechtigung.

SetPathList(FileIOPermissionAccess, String[])
Veraltet.

Legt den angegebenen Zugriff auf die angegebenen Dateien und Verzeichnisse fest und ersetzt dabei den aktuellen Zustand für den angegebenen Zugriff durch die neue Pfadgruppe.

ToString()
Veraltet.

Erstellt eine Zeichenfolgendarstellung des aktuellen Berechtigungsobjekts und gibt diese zurück.

(Geerbt von CodeAccessPermission)
ToXml()
Veraltet.

Erstellt eine XML-Codierung der Berechtigung und ihres aktuellen Zustands.

Union(IPermission)
Veraltet.

Erstellt eine Berechtigung als Kombination der aktuellen und der angegebenen Berechtigung.

Gilt für:

Weitere Informationen