Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Classe FileIOPermission

Consente di controllare la possibilità di accedere a file e cartelle. La classe non può essere ereditata.

System.Object
  System.Security.CodeAccessPermission
    System.Security.Permissions.FileIOPermission

Spazio dei nomi:  System.Security.Permissions
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class FileIOPermission : CodeAccessPermission, 
	IUnrestrictedPermission

Il tipo FileIOPermission espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoFileIOPermission(PermissionState)Inizializza una nuova istanza della classe FileIOPermission a cui sia associata un’autorizzazione con o senza restrizioni, come specificato.
Metodo pubblicoFileIOPermission(FileIOPermissionAccess, String)Consente di inizializzare una nuova istanza della classe FileIOPermission con l'accesso specificato al file o alla directory designata.
Metodo pubblicoFileIOPermission(FileIOPermissionAccess, String[])Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato ai file o alle directory designate.
Metodo pubblicoFileIOPermission(FileIOPermissionAccess, AccessControlActions, String)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.
Metodo pubblicoFileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato ai file e alle directory designate e i diritti di accesso specificati alle informazioni di controllo del file.
In alto
  NomeDescrizione
Proprietà pubblicaAllFilesOttiene o imposta l'accesso consentito a tutti i file.
Proprietà pubblicaAllLocalFilesOttiene o imposta l'accesso consentito a tutti i file locali.
In alto
  NomeDescrizione
Metodo pubblicoAddPathList(FileIOPermissionAccess, String)Consente di aggiungere allo stato esistente dell'autorizzazione l'accesso al file o alla directory specificati.
Metodo pubblicoAddPathList(FileIOPermissionAccess, String[])Consente di aggiungere allo stato esistente dell'autorizzazione l'accesso ai file e alle directory specificati.
Metodo pubblicoAssertDichiara che il codice chiamante può accedere alla risorsa protetta da una richiesta di autorizzazione attraverso il codice che chiama questo metodo anche se ai chiamanti nella posizione più elevata nello stack non è concessa l'autorizzazione ad accedere alla risorsa. Se si utilizza Assert è possibile creare problemi di sicurezza. (Ereditato da CodeAccessPermission)
Metodo pubblicoCopyCreata e restituisce una copia identica dell'autorizzazione corrente. (Esegue l'override di CodeAccessPermission.Copy()).
Metodo pubblicoDemandForza una SecurityException in fase di esecuzione se ai chiamanti nella parte superiore dello stack di chiamate non sono concesse le autorizzazioni specificate dall'istanza corrente. (Ereditato da CodeAccessPermission)
Metodo pubblicoDeny Obsoleta. Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di utilizzare il codice che chiama questo metodo per accedere alla risorsa specificata dall'istanza corrente. (Ereditato da CodeAccessPermission)
Metodo pubblicoEqualsConsente di determinare se l'oggetto FileIOPermission specificato è uguale all'oggetto FileIOPermission corrente. (Esegue l'override di CodeAccessPermission.Equals(Object)).
Metodo pubblicoFromXmlRicostruisce un'autorizzazione con uno stato specificato da una codifica XML. (Esegue l'override di CodeAccessPermission.FromXml(SecurityElement)).
Metodo pubblicoGetHashCodeOttiene un codice hash per l'oggetto FileIOPermission adatto per l'uso in algoritmi hash e in strutture di dati, come una tabella hash. (Esegue l'override di CodeAccessPermission.GetHashCode()).
Metodo pubblicoGetPathListOttiene tutti i file e le directory con l'autorizzazione FileIOPermissionAccess specificata.
Metodo pubblicoGetTypeOttiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoIntersectCrea e restituisce un'autorizzazione che è l'intersezione tra l'autorizzazione corrente e l'autorizzazione specificata. (Esegue l'override di CodeAccessPermission.Intersect(IPermission)).
Metodo pubblicoIsSubsetOfDetermina se l'autorizzazione corrente è un sottoinsieme dell'autorizzazione specificata. (Esegue l'override di CodeAccessPermission.IsSubsetOf(IPermission)).
Metodo pubblicoIsUnrestrictedRestituisce un valore che indica se l'autorizzazione corrente è senza restrizioni.
Metodo pubblicoPermitOnlyImpedisce ai chiamanti in posizione più elevata nello stack di chiamate di utilizzare il codice che chiama questo metodo per accedere a tutte le risorse ad eccezione della risorsa specificata dall'istanza corrente. (Ereditato da CodeAccessPermission)
Metodo pubblicoSetPathList(FileIOPermissionAccess, String)Imposta l'accesso specificato al file o alla directory indicati, sostituendo lo stato esistente dell'autorizzazione.
Metodo pubblicoSetPathList(FileIOPermissionAccess, String[])Imposta l'accesso specificato al file o alla directory indicati, sostituendo lo stato esistente dell'autorizzazione.
Metodo pubblicoToStringCrea e restituisce una rappresentazione in forma di stringa dell'oggetto di autorizzazione corrente. (Ereditato da CodeAccessPermission)
Metodo pubblicoToXmlConsente di creare una codifica XML dell'autorizzazione e del relativo stato corrente. (Esegue l'override di CodeAccessPermission.ToXml()).
Metodo pubblicoUnionCrea un'autorizzazione che è l'unione dell'autorizzazione corrente e dell'autorizzazione specificata. (Esegue l'override di CodeAccessPermission.Union(IPermission)).
In alto

Questa autorizzazione consente di distinguere fra i quattro tipi di accesso IO ai file forniti dall'oggetto FileIOPermissionAccess e riportati di seguito.

  • Read : accesso in lettura al contenuto del file oppure accesso a informazioni relative al file, quali la lunghezza o la data dell’ultima modifica.

  • Write : accesso in scrittura al contenuto del file oppure accesso per la modifica delle informazioni relative al file, come ad esempio il nome. Consente inoltre di eliminare e sovrascrivere il file.

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

  • PathDiscovery : accesso alle informazioni incluse nel percorso. Consente di proteggere informazioni riservate incluse nel percorso, quali i nomi utente, nonché informazioni relative alla struttura di directory indicata nel percorso. Questo valore non consente l'accesso ai file o alle cartelle rappresentate dal percorso.

NotaNota

Dare un accesso Write a un assembly equivale a concedergli un'attendibilità totale. Per impedire a un'applicazione di scrivere nel file system, evitare di concederle un accesso Write.

Le precedenti autorizzazioni sono indipendenti e pertanto la concessione di un tipo di diritti non implica la concessione di altri diritti. L'autorizzazione Write, ad esempio, non implica l'autorizzazione Read o Append. Se sono richieste più autorizzazioni, è possibile combinarle utilizzando l'operatore OR bit per bit, come illustrato nell'esempio di codice riportato di seguito. Le autorizzazioni per i file sono definite in termini di percorsi assoluti canonici; le chiamate devono essere sempre eseguite con nomi di percorsi canonici.

FileIOPermission descrive le operazioni protette su file e cartelle. La classe File consente di accedere in maniera protetta a file e cartelle. Il controllo di sicurezza sugli accessi viene eseguito quando viene creato l'handle al file. Se si esegue il controllo al momento della creazione, l'impatto del controllo di sicurezza sulle prestazioni risulta minimo. L'apertura di un file viene eseguita una sola volta, mentre la lettura e la scrittura possono avvenire numerose volte. Dopo l'apertura del file non viene più eseguito alcun controllo. Se passato a un chiamante non attendibile, è possibile che l'oggetto venga utilizzato in modo errato. È, ad esempio, preferibile non archiviare gli handle di file in variabili statiche, pubbliche o globali, dove risultano accessibili anche a codice con un numero inferiore di autorizzazioni.

FileIOPermissionAccess specifica le azioni che possono essere eseguite sul file o sulla cartella. Queste azioni possono inoltre essere combinate utilizzando un operatore OR bit per bit per formare istanze complesse.

L'accesso a una cartella implica l'accesso a tutti i file in essa contenuti, nonché a tutti i file e alle cartelle inclusi nelle sottocartelle. L'accesso Read a C:\cartella1\, ad esempio, implica l'accesso Read a C:\cartella1\file1.txt, C:\cartella1\cartella2\, C:\cartella1\cartella2\file2.txt e così via.

NotaNota

Nelle versioni di .NET Framework precedenti a .NET Framework 4, era possibile utilizzare il metodo CodeAccessPermission.Deny per impedire l'accesso accidentale alle risorse di sistema da parte di codice attendibile. Deny è ora obsoleto e l'accesso alle risorse è determinato solamente dal set di autorizzazioni concesse per un assembly. Per limitare l'accesso ai file, è necessario eseguire codice parzialmente attendibile in una sandbox e assegnare a quest'ultima le autorizzazioni solo a risorse a cui il codice può accedere. Per informazioni sull'esecuzione di un'applicazione in una sandbox, vedere Procedura: eseguire codice parzialmente attendibile in un oggetto sandbox.

Nell'esempio riportato di seguito è illustrato il codice con cui viene utilizzato l’oggetto FileIOPermission. Dopo le due righe di codice indicate di seguito, l'oggetto f rappresenta l'autorizzazione per la lettura di tutti i file nei dischi locali del client. Nell'esempio di codice viene quindi richiesta l'autorizzazione necessaria a determinare se l'applicazione è autorizzata alla lettura dei file.


            FileIOPermission f = new FileIOPermission(PermissionState.None);
            f.AllLocalFiles = FileIOPermissionAccess.Read;
            try
            {
                f.Demand();
            }
            catch (SecurityException s)
            {
                Console.WriteLine(s.Message);
            }



Dopo le due righe di codice seguenti, l'oggetto f2 rappresenta le autorizzazioni per la lettura di C:\test_r e per la lettura e la scrittura su C:\example\out.txt. Read e Write rappresentano le autorizzazioni per file/cartella descritte in precedenza. Una volta creata l'autorizzazione, nel codice viene richiesta l'autorizzazione necessaria a determinare se l'applicazione ha il diritto di leggere e scrivere nel file.


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);
}


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.