FileIOPermission FileIOPermission FileIOPermission FileIOPermission Class

Definizione

Controlla se è possibile accedere ai file e alle cartelle.Controls the ability to access files and folders. Questa classe non può essere ereditata.This class cannot be inherited.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Ereditarietà
Attributi
Implementazioni

Esempi

Negli esempi seguenti viene illustrato il codice utilizzato FileIOPermissionda.The following examples illustrate code that uses FileIOPermission. Dopo le due righe di codice seguenti, l'oggetto f rappresenta l'autorizzazione per la lettura di tutti i file nei dischi locali del computer client.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. Nell'esempio di codice viene quindi richiesta l'autorizzazione per determinare se l'applicazione dispone dell'autorizzazione per la lettura dei file.The code example then demands the permission to determine whether the application has permission to read the files.

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.After the following two lines of code, the object f2 represents permissions to read C:\test_r and read and write to C:\example\out.txt. Reade Write rappresentano le autorizzazioni per file/cartelle, come descritto in precedenza.Read and Write represent the file/folder permissions as previously described. Dopo aver creato l'autorizzazione, il codice richiede l'autorizzazione per determinare se l'applicazione ha il diritto di leggere e scrivere nel file.After creating the permission, the code demands the permission to determine whether the application has the right to read and write to the 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

Questa autorizzazione distingue tra i quattro tipi seguenti di accesso ai file di i/ FileIOPermissionAccesso di file forniti da:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: Accesso in lettura al contenuto del file o accesso alle informazioni sul file, ad esempio la lunghezza o l'ora dell'Ultima modifica.Read: Read access to the contents of the file or access to information about the file, such as its length or last modification time.

  • Write: Accesso in scrittura al contenuto del file o all'accesso per modificare le informazioni sul file, ad esempio il nome.Write: Write access to the contents of the file or access to change information about the file, such as its name. Consente inoltre l'eliminazione e la sovrascrittura.Also allows for deletion and overwriting.

  • Append: Possibilità di scrivere solo alla fine di un file.Append: Ability to write to the end of a file only. Nessuna possibilità di lettura.No ability to read.

  • PathDiscovery: Accesso alle informazioni nel percorso stesso.PathDiscovery: Access to the information in the path itself. Ciò consente di proteggere le informazioni riservate nel percorso, ad esempio i nomi utente, nonché le informazioni sulla struttura di directory rivelata nel percorso.This helps protect sensitive information in the path, such as user names, as well as information about the directory structure that is revealed in the path. Questo valore non consente l'accesso ai file o alle cartelle rappresentate dal percorso.This value does not grant access to files or folders represented by the path.

Nota

Fornire Write l'accesso a un assembly è simile alla concessione dell'attendibilità totale.Giving Write access to an assembly is similar to granting it full trust. Se un'applicazione non deve scrivere nel file System, non dovrebbe avere Write accesso.If an application should not write to the file system, it should not have Write access.

Tutte queste autorizzazioni sono indipendenti, vale a dire che i diritti per uno non implicano diritti per un altro.All these permissions are independent, meaning that rights to one do not imply rights to another. Ad esempio, Write l'autorizzazione non implica l'autorizzazione Read per Appendo.For example, Write permission does not imply permission to Read or Append. Se si desiderano più autorizzazioni, è possibile combinarle utilizzando un operatore OR bit per bit come illustrato nell'esempio di codice seguente.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. L'autorizzazione per i file è definita in termini di percorsi assoluti canonici; le chiamate devono essere sempre effettuate con i percorsi di file canonici.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermissiondescrive le operazioni protette su file e cartelle.FileIOPermission describes protected operations on files and folders. La File classe consente di fornire l'accesso sicuro a file e cartelle.The File class helps provide secure access to files and folders. Il controllo dell'accesso di sicurezza viene eseguito quando viene creato l'handle per il file.The security access check is performed when the handle to the file is created. Eseguendo il controllo in fase di creazione, l'effetto sulle prestazioni del controllo di sicurezza è ridotto a icona.By doing the check at creation time, the performance impact of the security check is minimized. L'apertura di un file viene eseguita una volta, mentre la lettura e la scrittura possono essere eseguite più volte.Opening a file happens once, while reading and writing can happen multiple times. Una volta aperto il file, non vengono eseguiti ulteriori controlli.Once the file is opened, no further checks are done. Se l'oggetto viene passato a un chiamante non attendibile, può essere usato in modo improprio.If the object is passed to an untrusted caller, it can be misused. Ad esempio, gli handle di file non devono essere archiviati in static globali pubblici, in cui il codice con minore autorizzazione può accedervi.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccessSpecifica le azioni che possono essere eseguite sul file o sulla cartella.FileIOPermissionAccess specifies actions that can be performed on the file or folder. Inoltre, queste azioni possono essere combinate utilizzando un operatore OR bit per bit per formare istanze complesse.In addition, these actions can be combined using a bitwise OR to form complex instances.

L'accesso a una cartella implica l'accesso a tutti i file in esso contenuti, nonché l'accesso a tutti i file e le cartelle delle relative sottocartelle.Access to a folder implies access to all the files it contains, as well as access to all the files and folders in its subfolders. Ad esempio, Read l'accesso a C:\Folder1\ Read implica l'accesso a C:\folder1\file1.txt\, C:\folder1\folder2, C:\folder1\folder2\file2.txt e così via.For example, Read access to C:\folder1\ implies Read access to C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, and so on.

Nota

Nelle versioni del .NET Framework prima .NET Framework 4.NET Framework 4di, è possibile utilizzare il CodeAccessPermission.Deny metodo per impedire l'accesso accidentale alle risorse di sistema da parte del codice attendibile.In versions of the .NET Framework before the .NET Framework 4.NET Framework 4, you could use the CodeAccessPermission.Deny method to prevent inadvertent access to system resources by trusted code. Denyè ora obsoleto e l'accesso alle risorse è ora determinato esclusivamente dal set di autorizzazioni concesso per un assembly.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. Per limitare l'accesso ai file, è necessario eseguire codice parzialmente attendibile in un ambiente sandbox e assegnare le autorizzazioni solo alle risorse a cui il codice può accedere.To limit access to files, you must run partially trusted code in a sandbox and assign it permissions only to resources that the code is allowed to access. Per informazioni sull'esecuzione di un'applicazione in una sandbox, vedere Procedura: Eseguire codice parzialmente attendibile in un oggetto sandbox.For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

Costruttori

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(FileIOPermissionAccess, AccessControlActions, String) FileIOPermission(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.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory and the specified access rights to file control information.

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

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.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String) FileIOPermission(FileIOPermissionAccess, String)

Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato al file o alla directory designati.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[]) FileIOPermission(FileIOPermissionAccess, String[])

Inizializza una nuova istanza della classe FileIOPermission con l'accesso specificato alle directory e ai file designati.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState) FileIOPermission(PermissionState) FileIOPermission(PermissionState) FileIOPermission(PermissionState)

Inizializza una nuova istanza della classe FileIOPermission con autorizzazione con restrizioni o senza restrizioni, come specificato.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

Proprietà

AllFiles AllFiles AllFiles AllFiles

Ottiene o imposta l'accesso autorizzato a tutti i file.Gets or sets the permitted access to all files.

AllLocalFiles AllLocalFiles AllLocalFiles AllLocalFiles

Ottiene o imposta l'accesso autorizzato a tutti i file locali.Gets or sets the permitted access to all local files.

Metodi

AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String) AddPathList(FileIOPermissionAccess, String)

Aggiunge allo stato esistente dell'autorizzazione l'accesso al file o alla directory specificata.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[]) AddPathList(FileIOPermissionAccess, String[])

Aggiunge allo stato esistente dell'autorizzazione l'accesso ai file o alle directory specificate.Adds access for the specified files and directories to the existing state of the permission.

Assert() Assert() Assert() Assert()

Dichiara 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.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Se si utilizza Assert() è possibile creare problemi di sicurezza.Using Assert() can create security issues.

(Inherited from CodeAccessPermission)
Copy() Copy() Copy() Copy()

Crea e restituisce una copia identica dell'autorizzazione corrente.Creates and returns an identical copy of the current permission.

Demand() Demand() Demand() Demand()

Forza 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.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(Inherited from CodeAccessPermission)
Deny() Deny() Deny() Deny()

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.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Inherited from CodeAccessPermission)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto FileIOPermission specificato è uguale all'oggetto FileIOPermission corrente.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

Ricostruisce un'autorizzazione con uno stato specificato da una codifica XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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.Gets a hash code for the FileIOPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess) GetPathList(FileIOPermissionAccess)

Ottiene tutti i file e le directory con l'oggetto FileIOPermissionAccess specificato.Gets all files and directories with the specified FileIOPermissionAccess.

GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

Crea e restituisce un'autorizzazione che rappresenta l'intersezione tra l'autorizzazione corrente e quella specificata.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission)

Determina se l'autorizzazione corrente è un subset di quella specificata.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted() IsUnrestricted() IsUnrestricted() IsUnrestricted()

Restituisce un valore che indica se l'autorizzazione corrente è senza restrizioni.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
PermitOnly() PermitOnly() PermitOnly() PermitOnly()

Impedisce 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.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Inherited from CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String) SetPathList(FileIOPermissionAccess, String)

Imposta l'accesso specificato al file o alla directory indicati, sostituendo lo stato esistente dell'autorizzazione.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[]) SetPathList(FileIOPermissionAccess, String[])

Imposta l'accesso specificato ai file e alle directory indicati, sostituendo lo stato corrente per l'accesso specificato con un nuovo set di percorsi.Sets the specified access to the specified files and directories, replacing the current state for the specified access with the new set of paths.

ToString() ToString() ToString() ToString()

Crea e restituisce una rappresentazione in forma di stringa dell'oggetto di autorizzazione corrente.Creates and returns a string representation of the current permission object.

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() ToXml()

Crea una codifica XML dell'autorizzazione e del relativo stato corrente.Creates an XML encoding of the permission and its current state.

Union(IPermission) Union(IPermission) Union(IPermission) Union(IPermission)

Crea un'autorizzazione che rappresenta l'unione dell'autorizzazione corrente e di quella specificata.Creates a permission that is the union of the current permission and the specified permission.

Implementazioni dell'interfaccia esplicita

IPermission.Demand() IPermission.Demand() IPermission.Demand() IPermission.Demand() Inherited from CodeAccessPermission
IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() Inherited from CodeAccessPermission
IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() Inherited from CodeAccessPermission
IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() Inherited from CodeAccessPermission
IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() Inherited from CodeAccessPermission

Si applica a

Vedi anche