FileIOPermission Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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í. |