Udostępnij za pośrednictwem


FileIOPermission Klasa

Definicja

Przestroga

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

Kontroluje możliwość uzyskiwania dostępu do plików i folderów. Klasa ta nie może być dziedziczona.

public ref class FileIOPermission sealed : 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
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}")>]
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
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Dziedziczenie
FileIOPermission
Atrybuty
Implementuje

Przykłady

W poniższych przykładach pokazano kod, który używa metody FileIOPermission. Po następujących dwóch wierszach kodu obiekt f reprezentuje uprawnienie do odczytu wszystkich plików na dyskach lokalnych komputera klienckiego. W przykładzie kodu wymagane jest uprawnienie do określania, czy aplikacja ma uprawnienia do odczytywania plików.

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 dwóch poniższych wierszach kodu obiekt f2 reprezentuje uprawnienia do odczytu C:\test_r i odczytu i zapisu w C:\example\out.txt. Read i Write reprezentują uprawnienia do pliku/folderu zgodnie z wcześniejszym opisem. Po utworzeniu uprawnienia kod wymaga uprawnienia, aby określić, czy aplikacja ma prawo do odczytu i zapisu w pliku.

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

Przestroga

Zabezpieczenia dostępu kodu (CAS) zostały uznane za przestarzałe we wszystkich wersjach .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.

To uprawnienie rozróżnia między następującymi czterema typami dostępu we/wy pliku udostępnianym przez FileIOPermissionAccessprogram :

  • Read: Dostęp do odczytu do zawartości pliku lub dostępu do informacji o pliku, takich jak jego długość lub czas ostatniej modyfikacji.

  • Write: Zapis dostępu do zawartości pliku lub dostępu w celu zmiany informacji o pliku, takich jak jego nazwa. Umożliwia również usuwanie i zastępowanie.

  • Append: Możliwość zapisu tylko na końcu pliku. Brak możliwości czytania.

  • PathDiscovery: Dostęp do informacji w samej ścieżce. Pomaga to chronić poufne informacje w ścieżce, takie jak nazwy użytkowników, a także informacje o strukturze katalogów ujawnionej w ścieżce. Ta wartość nie udziela dostępu do plików ani folderów reprezentowanych przez ścieżkę.

Uwaga

Udzielenie Write dostępu do zestawu jest podobne do przyznania mu pełnego zaufania. Jeśli aplikacja nie powinna zapisywać w systemie plików, nie powinna mieć Write dostępu.

Wszystkie te uprawnienia są niezależne, co oznacza, że prawa do jednego nie oznaczają praw do innego. Na przykład Write uprawnienie nie oznacza uprawnień do Read lub Append. Jeśli wymagane jest więcej niż jedno uprawnienie, można je połączyć za pomocą bitowego kodu LUB, jak pokazano w poniższym przykładzie kodu. Uprawnienie do pliku jest definiowane w kategoriach ścieżek bezwzględnych kanonicznych; wywołania powinny być zawsze wykonywane przy użyciu kanonicznych ścieżek plików.

FileIOPermission Opis chronionych operacji na plikach i folderach. Klasa File pomaga zapewnić bezpieczny dostęp do plików i folderów. Sprawdzanie dostępu do zabezpieczeń jest wykonywane po utworzeniu dojścia do pliku. Wykonując kontrolę w czasie tworzenia, wpływ kontroli zabezpieczeń na wydajność jest zminimalizowany. Otwieranie pliku odbywa się raz, podczas gdy odczyt i zapis mogą się zdarzyć wiele razy. Po otwarciu pliku nie są wykonywane żadne dalsze kontrole. Jeśli obiekt jest przekazywany do niezaufanego obiektu wywołującego, może zostać niewłaściwie użyty. Na przykład dojścia plików nie powinny być przechowywane w publicznych globalnych statycznych miejscach, w których kod z mniejszymi uprawnieniami może uzyskiwać do nich dostęp.

FileIOPermissionAccess określa akcje, które można wykonać w pliku lub folderze. Ponadto te akcje można łączyć za pomocą bitowego or w celu utworzenia złożonych wystąpień.

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. Na przykład Read dostęp do C:\folder1\ implikuje Read dostęp do C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt itd.

Uwaga

W wersjach .NET Framework przed .NET Framework 4 można użyć CodeAccessPermission.Deny metody , aby zapobiec niezamierzonemu dostępowi do zasobów systemowych za pomocą zaufanego kodu. Deny jest teraz przestarzały, a dostęp do zasobów jest teraz określany wyłącznie przez przyznany zestaw uprawnień. 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 uzyskiwać dostęp. Aby uzyskać informacje na temat uruchamiania aplikacji w piaskownicy, zobacz Instrukcje: uruchamianie częściowo zaufanego kodu w piaskownicy.

Konstruktory

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Przestarzałe.

Inicjuje nowe wystąpienie FileIOPermission klasy z określonym dostępem do wyznaczonego pliku lub katalogu i określonymi prawami dostępu do informacji kontroli plików.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Przestarzałe.

Inicjuje nowe wystąpienie FileIOPermission klasy z określonym dostępem do wyznaczonych plików i katalogów oraz określonymi prawami dostępu do informacji kontroli plików.

FileIOPermission(FileIOPermissionAccess, String)
Przestarzałe.

Inicjuje nowe wystąpienie FileIOPermission klasy z określonym dostępem do wyznaczonego pliku lub katalogu.

FileIOPermission(FileIOPermissionAccess, String[])
Przestarzałe.

Inicjuje nowe wystąpienie FileIOPermission klasy z określonym dostępem do wyznaczonych plików i katalogów.

FileIOPermission(PermissionState)
Przestarzałe.

Inicjuje FileIOPermission nowe wystąpienie klasy z w pełni ograniczonym lub nieograniczonym uprawnieniem zgodnie z określonymi.

Właściwości

AllFiles
Przestarzałe.

Pobiera lub ustawia dozwolony dostęp do wszystkich plików.

AllLocalFiles
Przestarzałe.

Pobiera lub ustawia dozwolony dostęp do wszystkich plików lokalnych.

Metody

AddPathList(FileIOPermissionAccess, String)
Przestarzałe.

Dodaje dostęp dla określonego pliku lub katalogu do istniejącego stanu uprawnienia.

AddPathList(FileIOPermissionAccess, String[])
Przestarzałe.

Dodaje dostęp do określonych plików i katalogów do istniejącego stanu uprawnienia.

Assert()
Przestarzałe.

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie uprawnień za pośrednictwem kodu, który wywołuje tę metodę, nawet jeśli obiekty wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Za pomocą polecenia Assert() można tworzyć problemy z zabezpieczeniami.

(Odziedziczone po CodeAccessPermission)
Copy()
Przestarzałe.

Tworzy i zwraca identyczną kopię bieżącego uprawnienia.

Demand()
Przestarzałe.

Wymusza w SecurityException czasie wykonywania, jeśli wszystkie elementy wywołujące wyższe w stosie wywołań nie otrzymały uprawnienia określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Deny()
Przestarzałe.
Przestarzałe.

Zapobiega wywoływaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Equals(Object)
Przestarzałe.

Określa, czy określony FileIOPermission obiekt jest równy bieżącemu FileIOPermission.

Equals(Object)
Przestarzałe.

Określa, czy określony CodeAccessPermission obiekt jest równy bieżącemu CodeAccessPermission.

(Odziedziczone po CodeAccessPermission)
FromXml(SecurityElement)
Przestarzałe.

Rekonstruuje uprawnienie z określonym stanem kodowania XML.

GetHashCode()
Przestarzałe.

Pobiera kod skrótu FileIOPermission dla obiektu, który jest odpowiedni do użycia w algorytmach tworzenia skrótów i strukturach danych, takich jak tabela skrótów.

GetHashCode()
Przestarzałe.

Pobiera kod skrótu CodeAccessPermission dla obiektu, który jest odpowiedni do użycia w algorytmach tworzenia skrótów i strukturach danych, takich jak tabela skrótów.

(Odziedziczone po CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Przestarzałe.

Pobiera wszystkie pliki i katalogi z określonym FileIOPermissionAccess.

GetType()
Przestarzałe.

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
Intersect(IPermission)
Przestarzałe.

Tworzy i zwraca uprawnienie, które jest skrzyżowaniem bieżącego uprawnienia i określonego uprawnienia.

IsSubsetOf(IPermission)
Przestarzałe.

Określa, czy bieżące uprawnienie jest podzbiorem określonego uprawnienia.

IsUnrestricted()
Przestarzałe.

Zwraca wartość wskazującą, czy bieżące uprawnienie jest nieograniczone.

MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
PermitOnly()
Przestarzałe.

Zapobiega wywoływaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do wszystkich zasobów z wyjątkiem zasobu określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Przestarzałe.

Ustawia określony dostęp do określonego pliku lub katalogu, zastępując istniejący stan uprawnienia.

SetPathList(FileIOPermissionAccess, String[])
Przestarzałe.

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.

ToString()
Przestarzałe.

Tworzy i zwraca ciąg reprezentujący bieżący obiekt uprawnień.

(Odziedziczone po CodeAccessPermission)
ToXml()
Przestarzałe.

Tworzy kodowanie XML uprawnienia i jego bieżącego stanu.

Union(IPermission)
Przestarzałe.

Tworzy uprawnienie będące połączeniem bieżącego uprawnienia i określonego uprawnienia.

Dotyczy

Zobacz też