Sdílet prostřednictvím


FileIOPermission Třída

Definice

Upozornění

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

Řídí možnost přístupu k souborům a složkám. Tato třída se nemůže dědit.

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
Dědičnost
FileIOPermission
Atributy
Implementuje

Příklady

Následující příklady znázorňují kód, který používá FileIOPermission. Za následujícími dvěma řádky kódu objekt f představuje oprávnění ke čtení všech souborů na místních discích klientského počítače. Příklad kódu pak vyžaduje oprávnění k určení, zda má aplikace oprávnění číst soubory.

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

Za následujícími dvěma řádky kódu objekt f2 představuje oprávnění ke čtení C:\test_r a čtení a zápisu do C:\example\out.txt. Read a Write představují oprávnění k souboru nebo složce, jak je popsáno výše. Po vytvoření oprávnění vyžaduje kód oprávnění k určení, jestli má aplikace právo číst a zapisovat do souboru.

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

Poznámky

Upozornění

Zabezpečení přístupu kódu (CAS) bylo zastaralé ve všech verzích rozhraní .NET Framework a .NET. Nedávné verze rozhraní .NET nedodržují poznámky CAS a při použití rozhraní API souvisejících s cas vytvářejí chyby. Vývojáři by měli hledat alternativní způsoby provádění úloh zabezpečení.

Toto oprávnění rozlišuje mezi následujícími čtyřmi typy přístupu ke vstupně-výstupním operacím souborů, které FileIOPermissionAccessposkytuje :

  • Read: Přístup ke čtení obsahu souboru nebo přístup k informacím o souboru, jako je jeho délka nebo čas poslední úpravy.

  • Write: Zápis přístupu k obsahu souboru nebo přístup ke změně informací o souboru, například jeho názvu. Umožňuje také odstranění a přepsání.

  • Append: Možnost zápisu pouze na konec souboru. Žádná schopnost číst.

  • PathDiscovery: Přístup k informacím v samotné cestě. To pomáhá chránit citlivé informace v cestě, jako jsou uživatelská jména, a také informace o adresářové struktuře, které se v cestě objeví. Tato hodnota neuděluje přístup k souborům nebo složkám reprezentovaným cestou.

Poznámka

Udělení Write přístupu k sestavení je podobné jako udělení úplného vztahu důvěryhodnosti. Pokud by aplikace neměla zapisovat do systému souborů, neměla by mít Write přístup.

Všechna tato oprávnění jsou nezávislá, což znamená, že práva k jednomu neznamenají práva jiného. Oprávnění například Write neznamená oprávnění k Read nebo Append. Pokud je potřeba více než jedno oprávnění, můžete je zkombinovat pomocí bitové hodnoty OR, jak je znázorněno v následujícím příkladu kódu. Oprávnění k souboru je definováno z hlediska kanonických absolutních cest; volání by vždy měla být provedena s kanonickými cestami k souborům.

FileIOPermission popisuje chráněné operace se soubory a složkami. Třída File pomáhá zajistit zabezpečený přístup k souborům a složkám. Kontrola přístupu zabezpečení se provádí při vytvoření popisovače souboru. Provedením kontroly při vytváření se minimalizuje dopad kontroly zabezpečení na výkon. Otevření souboru se provede jednou, zatímco čtení a zápis může proběhnout několikrát. Po otevření souboru se neprokonají žádné další kontroly. Pokud je objekt předán nedůvěryhodnému volajícímu, může být zneužit. Například popisovače souborů by neměly být uložené ve veřejných globálních statických objektech, kde k nim může přistupovat kód s menším oprávněním.

FileIOPermissionAccess určuje akce, které lze provést se souborem nebo složkou. Kromě toho je možné tyto akce kombinovat pomocí bitové funkce OR a vytvořit tak složité instance.

Přístup ke složce znamená přístup ke všem souborům, které obsahuje, a také přístup ke všem souborům a složkám v jejích podsložkách. Například Read přístup k C:\folder1\ znamená Read přístup k C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt atd.

Poznámka

Ve verzích rozhraní .NET Framework před rozhraním .NET Framework 4 můžete použít metodu CodeAccessPermission.Deny k zabránění neúmyslného přístupu k systémovým prostředkům důvěryhodným kódem. Deny je nyní zastaralá a přístup k prostředkům je nyní určen výhradně udělenou sadou oprávnění pro sestavení. Pokud chcete omezit přístup k souborům, musíte spustit částečně důvěryhodný kód v sandboxu a přiřadit mu oprávnění jenom k prostředkům, ke kterým má kód povolený přístup. Informace o spuštění aplikace v sandboxu najdete v tématu Postupy: Spuštění částečně důvěryhodného kódu v sandboxu.

Konstruktory

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Zastaralé.

Inicializuje novou instanci FileIOPermission třídy se zadaným přístupem k určenému souboru nebo adresáři a zadanými přístupovými právy k informacím o řízení souborů.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Zastaralé.

Inicializuje novou instanci FileIOPermission třídy se zadaným přístupem k určeným souborům a adresářům a zadaným přístupovým právům k informacím o řízení souborů.

FileIOPermission(FileIOPermissionAccess, String)
Zastaralé.

Inicializuje novou instanci FileIOPermission třídy se zadaným přístupem k určenému souboru nebo adresáři.

FileIOPermission(FileIOPermissionAccess, String[])
Zastaralé.

Inicializuje novou instanci FileIOPermission třídy se zadaným přístupem k určeným souborům a adresářům.

FileIOPermission(PermissionState)
Zastaralé.

Inicializuje novou instanci FileIOPermission třídy s plně omezenými nebo neomezenými oprávněními, jak je uvedeno.

Vlastnosti

AllFiles
Zastaralé.

Získá nebo nastaví povolený přístup ke všem souborům.

AllLocalFiles
Zastaralé.

Získá nebo nastaví povolený přístup ke všem místním souborům.

Metody

AddPathList(FileIOPermissionAccess, String)
Zastaralé.

Přidá přístup k zadanému souboru nebo adresáři do existujícího stavu oprávnění.

AddPathList(FileIOPermissionAccess, String[])
Zastaralé.

Přidá přístup k zadaným souborům a adresářům do existujícího stavu oprávnění.

Assert()
Zastaralé.

Deklaruje, že volající kód má přístup k prostředku chráněnému požadavkem na oprávnění prostřednictvím kódu, který volá tuto metodu, i když volajícím vyššímu v zásobníku nebylo uděleno oprávnění pro přístup k prostředku. Použití Assert() může vytvořit problémy se zabezpečením.

(Zděděno od CodeAccessPermission)
Copy()
Zastaralé.

Vytvoří a vrátí identickou kopii aktuálního oprávnění.

Demand()
Zastaralé.

SecurityException Vynutí hodnotu za běhu, pokud všem volajícím, kteří jsou výše v zásobníku volání, nebylo uděleno oprávnění určené aktuální instancí.

(Zděděno od CodeAccessPermission)
Deny()
Zastaralé.
Zastaralé.

Zabraňuje volajícím, kteří jsou výše v zásobníku volání, v použití kódu, který volá tuto metodu pro přístup k prostředku určenému aktuální instancí.

(Zděděno od CodeAccessPermission)
Equals(Object)
Zastaralé.

Určuje, zda je zadaný FileIOPermission objekt roven aktuálnímu FileIOPermissionobjektu .

Equals(Object)
Zastaralé.

Určuje, zda je zadaný CodeAccessPermission objekt roven aktuálnímu CodeAccessPermissionobjektu .

(Zděděno od CodeAccessPermission)
FromXml(SecurityElement)
Zastaralé.

Rekonstruuje oprávnění se zadaným stavem z kódování XML.

GetHashCode()
Zastaralé.

Získá hash kód pro FileIOPermission objekt, který je vhodný pro použití v hashovací algoritmy a datové struktury, jako je hash tabulky.

GetHashCode()
Zastaralé.

Získá hash kód pro CodeAccessPermission objekt, který je vhodný pro použití v hashovací algoritmy a datové struktury, jako je hash tabulky.

(Zděděno od CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Zastaralé.

Získá všechny soubory a adresáře se zadaným FileIOPermissionAccess.

GetType()
Zastaralé.

Získá aktuální Type instanci.

(Zděděno od Object)
Intersect(IPermission)
Zastaralé.

Vytvoří a vrátí oprávnění, které je průsečíkem aktuálního oprávnění a zadaného oprávnění.

IsSubsetOf(IPermission)
Zastaralé.

Určuje, zda je aktuální oprávnění podmnožinou zadaného oprávnění.

IsUnrestricted()
Zastaralé.

Vrátí hodnotu označující, zda je aktuální oprávnění neomezené.

MemberwiseClone()
Zastaralé.

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
PermitOnly()
Zastaralé.

Zabraňuje volajícím, kteří jsou výše v zásobníku volání, v použití kódu, který volá tuto metodu pro přístup ke všem prostředkům s výjimkou prostředku určeného aktuální instancí.

(Zděděno od CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Zastaralé.

Nastaví zadaný přístup k zadanému souboru nebo adresáři a nahradí stávající stav oprávnění.

SetPathList(FileIOPermissionAccess, String[])
Zastaralé.

Nastaví zadaný přístup k zadaným souborům a adresářům a nahradí aktuální stav zadaného přístupu novou sadou cest.

ToString()
Zastaralé.

Vytvoří a vrátí řetězcovou reprezentaci aktuálního objektu oprávnění.

(Zděděno od CodeAccessPermission)
ToXml()
Zastaralé.

Vytvoří kódování XML oprávnění a jeho aktuálního stavu.

Union(IPermission)
Zastaralé.

Vytvoří oprávnění, které je sjednocením aktuálního a zadaného oprávnění.

Platí pro

Viz také