FileIOPermission FileIOPermission FileIOPermission FileIOPermission Class

Definition

Steuert die Fähigkeit, auf Dateien und Ordner zuzugreifen.Controls the ability to access files and folders. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Vererbung
Attribute
Implementiert

Beispiele

Die folgenden Beispiele veranschaulichen, verwendet FileIOPermission.The following examples illustrate code that uses FileIOPermission. Nach der folgenden beiden Zeilen des Codes, das Objekt f stellt die Berechtigung zum Lesen von aller Dateien auf dem Client lokale Datenträger des Computers.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. Im Codebeispiel fordert dann die Berechtigung, um festzustellen, ob die Anwendung über die Berechtigung zum Lesen von Dateien verfügt.The code example then demands the permission to determine whether the application has permission to read the files.

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 der folgenden beiden Zeilen des Codes, das Objekt f2 Berechtigungen C:\test_r lesen und zu lesen und Schreiben in C:\example\out.txt darstellt.After the following two lines of code, the object f2 represents permissions to read C:\test_r and read and write to C:\example\out.txt. Read und Write darstellen die Datei-/Ordnerberechtigungen, die wie zuvor beschrieben.Read and Write represent the file/folder permissions as previously described. Nach dem Erstellen der Berechtigungssatzes, fordert der Code die Berechtigung, um festzustellen, ob die Anwendung hat die Berechtigung zum Lesen und Schreiben in die Datei.After creating the permission, the code demands the permission to determine whether the application has the right to read and write to the file.

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

Diese Berechtigung unterscheidet sich zwischen den folgenden vier Typen von e/a-Dateizugriff gebotenen FileIOPermissionAccess:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: Lesezugriff auf den Inhalt der Datei oder den Zugriff auf Informationen über die Datei, z. B. die Länge oder die Uhrzeit der letzten Änderung.Read: Read access to the contents of the file or access to information about the file, such as its length or last modification time.

  • Write: Schreibzugriff auf den Inhalt der Datei oder den Zugriff auf Informationen über die Datei, z. B. den Namen ändern.Write: Write access to the contents of the file or access to change information about the file, such as its name. Ermöglicht auch löschen und überschreiben.Also allows for deletion and overwriting.

  • Append: Die Möglichkeit, am Ende nur eine Datei zu schreiben.Append: Ability to write to the end of a file only. Keine Möglichkeit, zu lesen.No ability to read.

  • PathDiscovery: Zugriff auf die Informationen im Pfad selbst.PathDiscovery: Access to the information in the path itself. Dies schützt vertrauliche Informationen im Pfad, z. B. Benutzernamen, sowie Informationen über die Verzeichnisstruktur, die im Pfad erkennbar ist.This helps protect sensitive information in the path, such as user names, as well as information about the directory structure that is revealed in the path. Dieser Wert gewährt keinen Zugriff auf Dateien oder Ordner, die durch den Pfad dargestellt werden.This value does not grant access to files or folders represented by the path.

Hinweis

Sodass Write Zugriff auf eine Assembly ist ähnlich, es als voll vertrauenswürdig einstuft.Giving Write access to an assembly is similar to granting it full trust. Wenn eine Anwendung nicht in das Dateisystem schreiben soll, es sollte keinen Write Zugriff.If an application should not write to the file system, it should not have Write access.

Alle diese Berechtigungen sind unabhängig, was bedeutet, dass die Rechte für eine nicht von einander sind.All these permissions are independent, meaning that rights to one do not imply rights to another. Z. B. Write Berechtigung impliziert nicht die Berechtigung zum Read oder Append.For example, Write permission does not imply permission to Read or Append. Wenn mehr als eine Berechtigung gewünscht ist, können sie mithilfe einer bitweisen OR, wie im Codebeispiel wird gezeigt, das folgt kombiniert werden.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. Dateiberechtigung ist im Hinblick auf den kanonischen absoluten Pfaden definiert. Aufrufe sollten immer mit kanonischen Dateipfaden vorgenommen werden.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermission Beschreibt geschützte Operationen für Dateien und Ordner.FileIOPermission describes protected operations on files and folders. Die File Klasse bietet sicheren Zugriff auf Dateien und Ordner.The File class helps provide secure access to files and folders. Die sicherheitsüberprüfung für den Zugriff wird ausgeführt, wenn das Handle für die Datei erstellt wird.The security access check is performed when the handle to the file is created. Die Auswirkungen auf die Leistung der sicherheitsüberprüfung wird minimiert, indem Sie das Kontrollkästchen zum Zeitpunkt der Erstellung.By doing the check at creation time, the performance impact of the security check is minimized. Öffnen einer Datei erfolgt einmal beim Lesen und Schreiben von mehrfach auftreten können.Opening a file happens once, while reading and writing can happen multiple times. Wenn die Datei geöffnet ist, werden keine weiteren Überprüfungen durchgeführt.Once the file is opened, no further checks are done. Wenn das Objekt an eine nicht vertrauenswürdige Aufrufer übergeben wird, kann es missbraucht werden.If the object is passed to an untrusted caller, it can be misused. Dateihandles sollte z. B. nicht in öffentlichen globalen statischen Feldern gespeichert werden, in dem Code mit weniger Berechtigungen darauf zugreifen können.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccess Gibt Aktionen an, die für die Datei oder Ordner ausgeführt werden können.FileIOPermissionAccess specifies actions that can be performed on the file or folder. Darüber hinaus können diese Aktionen mithilfe einer bitweisen OR zu komplexen Instanzen kombiniert werden.In addition, these actions can be combined using a bitwise OR to form complex instances.

Zugriff auf einen Ordner bedeutet den Zugriff auf alle Dateien, die sie, die sowie den Zugriff auf alle Dateien und Ordner, in dessen Unterordnern enthält.Access to a folder implies access to all the files it contains, as well as access to all the files and folders in its subfolders. Z. B. Read auf C:\folder1\ impliziert Read auf C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt und So weiter.For example, Read access to C:\folder1\ implies Read access to C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, and so on.

Hinweis

In Versionen von .NET Framework vor der .NET Framework 4.NET Framework 4, können Sie die CodeAccessPermission.Deny Methode, um unbeabsichtigten Zugriff auf Systemressourcen von vertrauenswürdigem Code zu verhindern.In versions of the .NET Framework before the .NET Framework 4.NET Framework 4, you could use the CodeAccessPermission.Deny method to prevent inadvertent access to system resources by trusted code. Deny ist jetzt veraltet, und den Zugriff auf Ressourcen jetzt ausschließlich durch den gewährten Berechtigungssatz für eine Assembly bestimmt wird.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. Um den Zugriff auf Dateien zu beschränken, müssen Sie teilweise vertrauenswürdigen Code in einer Sandbox ausgeführt und weisen diese Berechtigungen nur für Ressourcen, die der Code zugreifen darf.To limit access to files, you must run partially trusted code in a sandbox and assign it permissions only to resources that the code is allowed to access. Informationen zum Ausführen von Anwendungen in einem Sandkasten finden Sie unter Vorgehensweise: Ausführen von teilweise vertrauenswürdigem Code in einem Sandkasten beschrieben.For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

Konstruktoren

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegte Datei oder das Verzeichnis und den angegebenen Zugriffsrechten auf Dateisteuerungsinformationen.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory and the specified access rights to file control information.

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

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegten Dateien und Verzeichnisse und den angegebenen Zugriffsrechten auf Dateisteuerungsinformationen.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String)

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegte Datei oder das festgelegte Verzeichnis.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[])

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit dem angegebenen Zugriff auf die festgelegten Dateien und Verzeichnisse.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState) FileIOPermission(PermissionState) FileIOPermission(PermissionState) FileIOPermission(PermissionState)

Initialisiert eine neue Instanz der FileIOPermission-Klasse mit vollständig eingeschränkter oder uneingeschränkter Berechtigung, wie angegeben.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

Eigenschaften

AllFiles AllFiles AllFiles AllFiles

Dient zum Abrufen oder Festlegen des Zugriffs auf alle Dateien.Gets or sets the permitted access to all files.

AllLocalFiles AllLocalFiles AllLocalFiles AllLocalFiles

Dient zum Abrufen oder Festlegen des gewährten Zugriffs auf alle lokalen Dateien.Gets or sets the permitted access to all local files.

Methoden

AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String)

Fügt dem vorhandenen Zustand der Berechtigung den Zugriff für die angegebene Datei oder das angegebene Verzeichnis hinzu.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[])

Fügt dem vorhandenen Zustand der Berechtigung den Zugriff für die angegebenen Dateien und Verzeichnisse hinzu.Adds access for the specified files and directories to the existing state of the permission.

Assert() Assert() Assert() Assert()

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.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Die Verwendung von Assert() kann zu Sicherheitsproblemen führen.Using Assert() can create security issues.

(Inherited from CodeAccessPermission)
Copy() Copy() Copy() Copy()

Erstellt eine identische Kopie der aktuellen Berechtigung und gibt sie zurück.Creates and returns an identical copy of the current permission.

Demand() Demand() Demand() Demand()

Erzwingt zur Laufzeit eine SecurityException, wenn die von der aktuellen Instanz angegebene Berechtigung keinem übergeordneten Aufrufer in der Aufrufliste gewährt wurde.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(Inherited from CodeAccessPermission)
Deny() Deny() Deny() Deny()

Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf die von der aktuellen Instanz angegebene Ressource über Code zugreifen, der diese Methode aufruft.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Inherited from CodeAccessPermission)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene FileIOPermission-Objekt der aktuellen FileIOPermission entspricht.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

Stellt eine Berechtigung mit einem angegebenen Zustand aus einer XML-Codierung wieder her.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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.Gets a hash code for the FileIOPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess)

Ruft alle Dateien und Verzeichnisse mit dem angegebenen FileIOPermissionAccess ab.Gets all files and directories with the specified FileIOPermissionAccess.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

Erstellt eine Berechtigung als Schnittmenge der aktuellen und der angegebenen Berechtigung und gibt diese zurück.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission)

Bestimmt, ob die aktuelle Berechtigung eine Teilmenge der angegebenen Berechtigung ist.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted() IsUnrestricted() IsUnrestricted() IsUnrestricted()

Gibt einen Wert zurück, der angibt, ob die aktuelle Berechtigung uneingeschränkt ist.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
PermitOnly() PermitOnly() PermitOnly() 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.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Inherited from CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String)

Legt den angegebenen Zugriff auf die angegebene Datei oder das angegebene Verzeichnis fest und ersetzt den vorhandenen Zustand der Berechtigung.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[])

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.Sets the specified access to the specified files and directories, replacing the current state for the specified access with the new set of paths.

ToString() ToString() ToString() ToString()

Erstellt eine Zeichenfolgenentsprechung des aktuellen Berechtigungsobjekts und gibt diese zurück.Creates and returns a string representation of the current permission object.

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() ToXml()

Erstellt eine XML-Codierung der Berechtigung und ihres aktuellen Zustands.Creates an XML encoding of the permission and its current state.

Union(IPermission) Union(IPermission) Union(IPermission) Union(IPermission)

Erstellt eine Berechtigung als Kombination der aktuellen und der angegebenen Berechtigung.Creates a permission that is the union of the current permission and the specified permission.

Explizite Schnittstellenimplementierungen

IPermission.Demand() IPermission.Demand() IPermission.Demand() IPermission.Demand() Inherited from CodeAccessPermission
IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() Inherited from CodeAccessPermission
IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() Inherited from CodeAccessPermission
IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() Inherited from CodeAccessPermission
IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() Inherited from CodeAccessPermission

Gilt für:

Siehe auch