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

In den folgenden Beispielen wird Code veranschaulicht FileIOPermission, der verwendet.The following examples illustrate code that uses FileIOPermission. Nach den beiden folgenden Codezeilen stellt das-Objekt f die Berechtigung zum Lesen aller Dateien auf den lokalen Datenträgern des Client Computers dar.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 wird dann die-Berechtigung benötigt, um zu bestimmen, ob die Anwendung über die Berechtigung zum Lesen der 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 den beiden folgenden Codezeilen stellt das-Objekt f2 die Berechtigungen zum Lesen von C:\test_r und zum Lesen und Schreiben in c:\example\out.txt dar.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. Readund Write stellen die Datei-/Ordnerberechtigungen wie zuvor beschrieben dar.Read and Write represent the file/folder permissions as previously described. Nach dem Erstellen der Berechtigung erfordert der Code die Berechtigung, um zu bestimmen, ob die Anwendung über das Recht zum Lesen und Schreiben in die Datei verfügt.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 zwischen den folgenden vier Typen von Datei-e/ FileIOPermissionAccessa-Zugriff:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: Lesezugriff auf den Inhalt der Datei oder Zugriff auf Informationen über die Datei, z. b. die Länge oder 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: Schreiben Sie Zugriff auf den Inhalt der Datei oder auf den Zugriff, um Informationen über die Datei zu ändern, z. b. den Namen.Write: Write access to the contents of the file or access to change information about the file, such as its name. Ermöglicht auch das Löschen und überschreiben.Also allows for deletion and overwriting.

  • Append: Die Möglichkeit, nur an das Ende einer Datei zu schreiben.Append: Ability to write to the end of a file only. Keine Leseberechtigung.No ability to read.

  • PathDiscovery: Zugriff auf die Informationen im Pfad selbst.PathDiscovery: Access to the information in the path itself. Dadurch können vertrauliche Informationen im Pfad, z. b. Benutzernamen, und Informationen über die Verzeichnisstruktur, die im Pfad angezeigt wird, geschützt werden.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

Das Gewähren des Zugriffs auf eine Assembly ähnelt dem Gewähren von vollständiger Vertrauenswürdigkeit. WriteGiving Write access to an assembly is similar to granting it full trust. Wenn eine Anwendung nicht in das Dateisystem schreiben soll, sollte Sie keinen Zugriff Write haben.If an application should not write to the file system, it should not have Write access.

Alle diese Berechtigungen sind unabhängig, d. h., dass Rechte zu einem anderen keine Rechte für einen anderen implizieren.All these permissions are independent, meaning that rights to one do not imply rights to another. Beispielsweise Write impliziert die-Berechtigung nicht die-Berechtigung Appendfür Read oder.For example, Write permission does not imply permission to Read or Append. Wenn mehr als eine Berechtigung gewünscht ist, können Sie mit einem bitweisen OR kombiniert werden, wie im folgenden Codebeispiel gezeigt.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. Die Datei Berechtigung wird in Bezug auf kanonische absolute Pfade definiert. Aufrufe sollten immer mit kanonischen Dateipfaden erfolgen.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermissionbeschreibt geschützte Vorgänge für Dateien und Ordner.FileIOPermission describes protected operations on files and folders. Mit File der-Klasse können Sie sicheren Zugriff auf Dateien und Ordner bereitstellen.The File class helps provide secure access to files and folders. Die Sicherheits Zugriffs Überprüfung 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. Durch die Überprüfung zur Erstellungszeit wird die Leistungs Beeinträchtigung der Sicherheitsüberprüfung minimiert.By doing the check at creation time, the performance impact of the security check is minimized. Das Öffnen einer Datei erfolgt einmal, während das Lesen und schreiben mehrmals erfolgen kann.Opening a file happens once, while reading and writing can happen multiple times. Nachdem die Datei geöffnet wurde, werden keine weiteren Überprüfungen durchgeführt.Once the file is opened, no further checks are done. Wenn das Objekt an einen nicht vertrauenswürdigen Aufrufer übergeben wird, kann es missbraucht werden.If the object is passed to an untrusted caller, it can be misused. Datei Handles sollten z. b. nicht in öffentlichen globalen Statics gespeichert werden, in denen Code mit weniger Berechtigungen darauf zugreifen kann.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccessGibt Aktionen an, die für die Datei oder den Ordner ausgeführt werden können.FileIOPermissionAccess specifies actions that can be performed on the file or folder. Außerdem können diese Aktionen mithilfe eines bitweisen OR kombiniert werden, um komplexe Instanzen zu bilden.In addition, these actions can be combined using a bitwise OR to form complex instances.

Der Zugriff auf einen Ordner impliziert den Zugriff auf alle Dateien, die er enthält, sowie auf alle Dateien und Ordner in seinen Unterordnern.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. Der Read Zugriff auf "c:\folder1" impliziert Read beispielsweise den Zugriff auf "c:\folder1\file1.txt", "c:\folder1\folder2\", "c:\folder1\folder2\file2.txt" usw.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 des-.NET Framework vor .NET Framework 4.NET Framework 4konnten Sie die CodeAccessPermission.Deny -Methode verwenden, um unbeabsichtigten Zugriff auf Systemressourcen durch vertrauenswürdigen 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. Denyist mittlerweile veraltet, und der Zugriff auf Ressourcen wird jetzt ausschließlich durch den gewährten Berechtigungs Satz für eine Assembly bestimmt.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 einzuschränken, müssen Sie teilweise vertrauenswürdigen Code in einem Sandkasten ausführen und ihm Berechtigungen nur für Ressourcen zuweisen, auf 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 einer Anwendung in einem Sandkasten finden Sie unter Gewusst wie: 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