FileIOPermission Classe

Definizione

Attenzione

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

Controlla se è possibile accedere ai file e alle cartelle. La classe non può essere ereditata.

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

Esempio

Negli esempi seguenti viene illustrato il codice che usa FileIOPermission. Dopo le due righe di codice seguenti, l'oggetto f rappresenta l'autorizzazione per leggere tutti i file nei dischi locali del computer client. L'esempio di codice richiede quindi l'autorizzazione per determinare se l'applicazione dispone dell'autorizzazione per leggere i file.

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

Dopo le due righe di codice, l'oggetto f2 rappresenta le autorizzazioni per leggere C:\test_r e leggere e scrivere su c:\example\out.txt. Read e Write rappresentano le autorizzazioni per file/cartelle, come descritto in precedenza. Dopo aver creato l'autorizzazione, il codice richiede l'autorizzazione per determinare se l'applicazione ha il diritto di leggere e scrivere nel 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

Commenti

Attenzione

La sicurezza dall'accesso al codice è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate a CAS. Gli sviluppatori devono cercare metodi alternativi per eseguire attività di sicurezza.

Questa autorizzazione distingue tra i quattro tipi di accesso di I/O di file seguenti forniti da FileIOPermissionAccess:

  • Read: accesso in lettura al contenuto del file o accesso alle informazioni sul file, ad esempio la durata o l'ora dell'ultima modifica.

  • Write: accesso in scrittura al contenuto del file o accesso per modificare le informazioni sul file, ad esempio il nome. Consente anche l'eliminazione e la sovrascrittura.

  • Append: possibilità di scrivere solo alla fine di un file. Nessuna capacità di lettura.

  • PathDiscovery: accesso alle informazioni nel percorso stesso. Ciò consente di proteggere le informazioni riservate nel percorso, ad esempio i nomi utente, nonché le informazioni sulla struttura di directory visualizzata nel percorso. Questo valore non consente l'accesso ai file o alle cartelle rappresentate dal percorso.

Nota

Concedere Write l'accesso a un assembly è simile a concedere l'attendibilità totale. Se un'applicazione non deve scrivere nel file system, non deve avere Write accesso.

Tutte queste autorizzazioni sono indipendenti, vale a dire che i diritti a uno non implicano diritti a un altro. Ad esempio, Write l'autorizzazione non implica l'autorizzazione per Read o Append. Se si desidera disporre di più autorizzazioni, è possibile combinare usando un OR bit per bit, come illustrato nell'esempio di codice seguente. L'autorizzazione file è definita in termini di percorsi assoluti canonici; le chiamate devono essere sempre effettuate con percorsi di file canonici.

FileIOPermission descrive le operazioni protette su file e cartelle. La File classe consente di fornire accesso sicuro a file e cartelle. Il controllo di accesso di sicurezza viene eseguito quando viene creato l'handle per il file. Eseguendo il controllo in fase di creazione, l'impatto sulle prestazioni del controllo di sicurezza è ridotto al minimo. L'apertura di un file avviene una sola volta, mentre la lettura e la scrittura possono verificarsi più volte. Una volta aperto il file, non vengono eseguiti ulteriori controlli. Se l'oggetto viene passato a un chiamante non attendibile, può essere usato in modo improprio. Ad esempio, gli handle di file non devono essere archiviati in statici globali pubblici in cui il codice con meno autorizzazioni può accedervi.

FileIOPermissionAccess specifica le azioni che possono essere eseguite nel file o nella cartella. Inoltre, queste azioni possono essere combinate usando un OR bit per bit per formare istanze complesse.

L'accesso a una cartella implica l'accesso a tutti i file contenuti, nonché l'accesso a tutti i file e alle cartelle nelle relative sottocartelle. Ad esempio, Read l'accesso a C:\folder1\ implica Read l'accesso a C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt e così via.

Nota

Nelle versioni di .NET Framework precedenti a .NET Framework 4, è possibile usare il CodeAccessPermission.Deny metodo per impedire l'accesso accidentale alle risorse di sistema tramite codice attendibile. Deny è ora obsoleto e l'accesso alle risorse viene ora determinato esclusivamente dal set di autorizzazioni concesso per un assembly. Per limitare l'accesso ai file, è necessario eseguire codice parzialmente attendibile in una sandbox e assegnargli le autorizzazioni solo alle risorse a cui è consentito l'accesso al codice. Per informazioni sull'esecuzione di un'applicazione in una sandbox, vedere Procedura: Eseguire codice parzialmente attendibile in una sandbox.

Costruttori

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Obsoleti.

Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato al file o alla directory designata e i diritti di accesso specificati alle informazioni di controllo del file.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Obsoleti.

Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato alle directory e ai file designati e i diritti di accesso specificati alle informazioni di controllo dei file.

FileIOPermission(FileIOPermissionAccess, String)
Obsoleti.

Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato al file o alla directory designati.

FileIOPermission(FileIOPermissionAccess, String[])
Obsoleti.

Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato alle directory e ai file designati.

FileIOPermission(PermissionState)
Obsoleti.

Inizializza una nuova istanza della classe FileIOPermission con autorizzazione con restrizioni o senza restrizioni, come specificato.

Proprietà

AllFiles
Obsoleti.

Ottiene o imposta l'accesso autorizzato a tutti i file.

AllLocalFiles
Obsoleti.

Ottiene o imposta l'accesso autorizzato a tutti i file locali.

Metodi

AddPathList(FileIOPermissionAccess, String)
Obsoleti.

Aggiunge allo stato esistente dell'autorizzazione l'accesso al file o alla directory specificata.

AddPathList(FileIOPermissionAccess, String[])
Obsoleti.

Aggiunge allo stato esistente dell'autorizzazione l'accesso ai file o alle directory specificate.

Assert()
Obsoleti.

Dichiara che il codice chiamante può accedere alla risorsa protetta da una richiesta di autorizzazione tramite il codice che chiama il metodo, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione per accedere alla risorsa. L'uso di Assert() può creare problemi di sicurezza.

(Ereditato da CodeAccessPermission)
Copy()
Obsoleti.

Crea e restituisce una copia identica dell'autorizzazione corrente.

Demand()
Obsoleti.

Forza un oggetto SecurityException in fase di esecuzione se tutti i chiamanti in posizioni superiori nello stack di chiamate non hanno l'autorizzazione specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
Deny()
Obsoleti.
Obsoleti.

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere alla risorsa specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
Equals(Object)
Obsoleti.

Consente di determinare se l'oggetto FileIOPermission specificato è uguale all'oggetto FileIOPermission corrente.

Equals(Object)
Obsoleti.

Consente di determinare se l'oggetto CodeAccessPermission specificato è uguale all'oggetto CodeAccessPermission corrente.

(Ereditato da CodeAccessPermission)
FromXml(SecurityElement)
Obsoleti.

Ricostruisce un'autorizzazione con uno stato specificato da una codifica XML.

GetHashCode()
Obsoleti.

Ottiene un codice hash per l'oggetto FileIOPermission adatto per l'uso in algoritmi di hash e in strutture di dati, come una tabella hash.

GetHashCode()
Obsoleti.

Ottiene un codice hash per l'oggetto CodeAccessPermission adatto per l'uso in algoritmi di hash e in strutture di dati, come una tabella hash.

(Ereditato da CodeAccessPermission)
GetPathList(FileIOPermissionAccess)
Obsoleti.

Ottiene tutti i file e le directory con l'oggetto FileIOPermissionAccess specificato.

GetType()
Obsoleti.

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Intersect(IPermission)
Obsoleti.

Crea e restituisce un'autorizzazione che rappresenta l'intersezione tra l'autorizzazione corrente e quella specificata.

IsSubsetOf(IPermission)
Obsoleti.

Determina se l'autorizzazione corrente è un subset di quella specificata.

IsUnrestricted()
Obsoleti.

Restituisce un valore che indica se l'autorizzazione corrente è senza restrizioni.

MemberwiseClone()
Obsoleti.

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
PermitOnly()
Obsoleti.

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere a tutte le risorse eccetto quella specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Obsoleti.

Imposta l'accesso specificato al file o alla directory indicati, sostituendo lo stato esistente dell'autorizzazione.

SetPathList(FileIOPermissionAccess, String[])
Obsoleti.

Imposta l'accesso specificato ai file e alle directory indicati, sostituendo lo stato corrente per l'accesso specificato con un nuovo set di percorsi.

ToString()
Obsoleti.

Crea e restituisce una rappresentazione di stringa dell'oggetto autorizzazione corrente.

(Ereditato da CodeAccessPermission)
ToXml()
Obsoleti.

Crea una codifica XML dell'autorizzazione e del relativo stato corrente.

Union(IPermission)
Obsoleti.

Crea un'autorizzazione che rappresenta l'unione dell'autorizzazione corrente e di quella specificata.

Si applica a

Vedi anche