FileIOPermission Klasa

Definicja

Kontroluje możliwość dostępu do plików i folderów.Controls the ability to access files and folders. Klasa ta nie może być dziedziczona.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
Dziedziczenie
FileIOPermission
Atrybuty
Implementuje

Przykłady

Poniższe przykłady ilustrują kod, który używa FileIOPermission.The following examples illustrate code that uses FileIOPermission. Po następujących dwóch wierszach kodu obiekt f reprezentuje uprawnienia do odczytu wszystkich plików na dyskach lokalnych na komputerze klienckim.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. Przykład kodu wymaga uprawnienia do określenia, czy aplikacja ma uprawnienia do odczytu plików.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

Po następujących dwóch wierszach kodu obiekt f2 reprezentuje uprawnienia do odczytu test_r C:\ i odczytu i zapisu w C:\example\out.txt.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 i Write reprezentują uprawnienia do plików/folderów, jak opisano wcześniej.Read and Write represent the file/folder permissions as previously described. Po utworzeniu uprawnienia kod wymaga uprawnień do określenia, czy aplikacja ma prawo do odczytu i zapisu w pliku.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

Uwagi

To uprawnienie odróżnia następujące cztery typy dostępu we/wy pliku dostarczone przez FileIOPermissionAccess:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: dostęp do odczytu do zawartości pliku lub dostęp do informacji o pliku, takich jak długość lub czas ostatniej modyfikacji.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: dostęp do zapisu do zawartości pliku lub dostęp do zmiany informacji o pliku, na przykład jego nazwy.Write: Write access to the contents of the file or access to change information about the file, such as its name. Umożliwia również usunięcie i zastąpienie.Also allows for deletion and overwriting.

  • Append: możliwość zapisu tylko na końcu pliku.Append: Ability to write to the end of a file only. Brak możliwości odczytu.No ability to read.

  • PathDiscovery: dostęp do informacji w samej ścieżce.PathDiscovery: Access to the information in the path itself. Pozwala to chronić poufne informacje w ścieżce, takie jak nazwy użytkowników, a także informacje o strukturze katalogów, która jest wykazała w ścieżce.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. Ta wartość nie zezwala na dostęp do plików ani folderów reprezentowanych przez ścieżkę.This value does not grant access to files or folders represented by the path.

Uwaga

Umożliwienie Write dostępu do zestawu jest podobne do przyznawania IT pełnego zaufania.Giving Write access to an assembly is similar to granting it full trust. Jeśli aplikacja nie powinna zapisywać w systemie plików, nie powinna mieć dostępu Write.If an application should not write to the file system, it should not have Write access.

Wszystkie te uprawnienia są niezależne, co oznacza, że prawa do jednego nie oznaczają praw do innej.All these permissions are independent, meaning that rights to one do not imply rights to another. Na przykład uprawnienie Write nie oznacza uprawnienia do Read lub Append.For example, Write permission does not imply permission to Read or Append. Jeśli pożądane jest więcej niż jedno uprawnienie, można je łączyć przy użyciu bitowej lub, jak pokazano w poniższym przykładzie kodu.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. Uprawnienie do pliku jest zdefiniowane w postaci kanonicznych ścieżek bezwzględnych. wywołania powinny być zawsze wykonywane z kanonicznymi ścieżkami plików.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermission opisuje operacje chronione na plikach i folderach.FileIOPermission describes protected operations on files and folders. Klasa File pomaga zapewnić bezpieczny dostęp do plików i folderów.The File class helps provide secure access to files and folders. Sprawdzanie dostępu zabezpieczeń jest wykonywane po utworzeniu dojścia do pliku.The security access check is performed when the handle to the file is created. Dzięki sprawdzeniu czasu utworzenia, wpływ na wydajność kontroli zabezpieczeń jest zminimalizowany.By doing the check at creation time, the performance impact of the security check is minimized. Otwieranie pliku odbywa się jednokrotnie, podczas gdy odczytywanie i zapisywanie może wystąpić wiele razy.Opening a file happens once, while reading and writing can happen multiple times. Po otwarciu pliku nie są wykonywane żadne dalsze sprawdzanie.Once the file is opened, no further checks are done. Jeśli obiekt jest przesyłany do niezaufanego obiektu wywołującego, może być nieużywany.If the object is passed to an untrusted caller, it can be misused. Na przykład dojścia do plików nie powinny być przechowywane w publicznych globalnych statycznych, gdzie kod z mniej uprawnieniem może uzyskiwać do nich dostęp.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccess Określa akcje, które można wykonać na pliku lub folderze.FileIOPermissionAccess specifies actions that can be performed on the file or folder. Ponadto te akcje można łączyć za pomocą bitowe lub do tworzenia złożonych wystąpień.In addition, these actions can be combined using a bitwise OR to form complex instances.

Dostęp do folderu oznacza dostęp do wszystkich plików, które zawiera, a także dostęp do wszystkich plików i folderów w jego podfolderach.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. Na przykład Read dostęp do usługi C:\folder1\ oznacza Read dostęp do C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt i tak dalej.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.

Uwaga

W wersjach .NET Framework przed Program .NET Framework 4.NET Framework 4można użyć metody CodeAccessPermission.Deny, aby zapobiec nieumyślnemu dostępowi do zasobów systemowych przez zaufany kod.In versions of the .NET Framework before the Program .NET Framework 4.NET Framework 4, you could use the CodeAccessPermission.Deny method to prevent inadvertent access to system resources by trusted code. Deny jest już przestarzałe, a dostęp do zasobów jest teraz ustalany wyłącznie przez przyznany zestaw uprawnień dla zestawu.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. Aby ograniczyć dostęp do plików, należy uruchomić częściowo zaufany kod w piaskownicy i przypisać mu uprawnienia tylko do zasobów, do których kod może uzyskać dostęp.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. Aby uzyskać informacje na temat uruchamiania aplikacji w piaskownicy, zobacz How to: Run a Untrusted Code w piaskownicy.For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

Konstruktory

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

Inicjuje nowe wystąpienie klasy FileIOPermission z określonym dostępem do wyznaczonych plików lub katalogów oraz określonymi prawami dostępu do informacji o kontroli pliku.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[])

Inicjuje nowe wystąpienie klasy FileIOPermission z określonym dostępem do wyznaczonych plików i katalogów oraz określonych praw dostępu do informacji o kontroli pliku.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)

Inicjuje nowe wystąpienie klasy FileIOPermission z określonym dostępem do wyznaczonych plików lub katalogów.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[])

Inicjuje nowe wystąpienie klasy FileIOPermission z określonym dostępem do wyznaczonych plików i katalogów.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState)

Inicjuje nowe wystąpienie klasy FileIOPermission z pełnymi ograniczonymi lub nieograniczonymi uprawnieniami określonymi jako określone.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

Właściwości

AllFiles

Pobiera lub ustawia dozwolony dostęp do wszystkich plików.Gets or sets the permitted access to all files.

AllLocalFiles

Pobiera lub ustawia dozwolony dostęp do wszystkich plików lokalnych.Gets or sets the permitted access to all local files.

Metody

AddPathList(FileIOPermissionAccess, String)

Dodaje dostęp do określonego pliku lub katalogu do istniejącego stanu uprawnienia.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[])

Dodaje dostęp do określonych plików i katalogów do istniejącego stanu uprawnienia.Adds access for the specified files and directories to the existing state of the permission.

Assert()

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie dostępu za pomocą kodu, który wywołuje tę metodę, nawet jeśli obiekty wywołujące wyższego poziomu stosu nie uzyskały uprawnienia dostępu do zasobu.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. Za pomocą Assert() można tworzyć problemy z zabezpieczeniami.Using Assert() can create security issues.

(Odziedziczone po CodeAccessPermission)
Copy()

Tworzy i zwraca identyczną kopię bieżącego uprawnienia.Creates and returns an identical copy of the current permission.

Demand()

Wymusza SecurityException w czasie wykonywania, jeśli wszyscy wywołujący znajdujący się wyżej w stosie wywołań nie udzielił uprawnień określonych przez bieżące wystąpienie.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.

(Odziedziczone po CodeAccessPermission)
Deny()

Zapobiega wywoływaniu obiektów wywołujących w stosie wywołań przy użyciu kodu wywołującego tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Odziedziczone po CodeAccessPermission)
Equals(Object)

Określa, czy określony obiekt FileIOPermission jest równy bieżącemu FileIOPermission.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement)

Rekonstruuje uprawnienia z określonym stanem z kodowania XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode()

Pobiera kod skrótu dla obiektu FileIOPermission, który jest odpowiedni do użycia w algorytmach wyznaczania wartości skrótu i struktur danych, takich jak tabela skrótów.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)

Pobiera wszystkie pliki i katalogi o określonym FileIOPermissionAccess.Gets all files and directories with the specified FileIOPermissionAccess.

GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
Intersect(IPermission)

Tworzy i zwraca uprawnienie, które jest częścią wspólną bieżącego uprawnienia i określonego uprawnienia.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission)

Określa, czy bieżące uprawnienie jest podzbiorem określonego uprawnienia.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted()

Zwraca wartość wskazującą, czy bieżące uprawnienie jest nieograniczone.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
PermitOnly()

Zapobiega wywoływaniu obiektów wywołujących w stosie wywołań przy użyciu kodu wywołującego tę metodę w celu uzyskania dostępu do wszystkich zasobów z wyjątkiem zasobu określonego przez bieżące wystąpienie.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.

(Odziedziczone po CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)

Ustawia określony dostęp do określonego pliku lub katalogu, zastępując istniejący stan uprawnienia.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[])

Ustawia określony dostęp do określonych plików i katalogów, zastępując bieżący stan określonego dostępu nowym zestawem ścieżek.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()

Tworzy i zwraca reprezentację ciągu dla bieżącego obiektu uprawnienia.Creates and returns a string representation of the current permission object.

(Odziedziczone po CodeAccessPermission)
ToXml()

Tworzy Kodowanie XML uprawnienia i jego bieżący stan.Creates an XML encoding of the permission and its current state.

Union(IPermission)

Tworzy uprawnienie, które jest złożeniem bieżącego uprawnienia i określonym uprawnieniem.Creates a permission that is the union of the current permission and the specified permission.

Jawne implementacje interfejsu

IPermission.Demand() (Odziedziczone po CodeAccessPermission)
IStackWalk.Assert() (Odziedziczone po CodeAccessPermission)
IStackWalk.Demand() (Odziedziczone po CodeAccessPermission)
IStackWalk.Deny() (Odziedziczone po CodeAccessPermission)
IStackWalk.PermitOnly() (Odziedziczone po CodeAccessPermission)

Dotyczy

Zobacz też