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

Gli esempi seguenti illustrano il codice che utilizza FileIOPermission.The following examples illustrate code that uses FileIOPermission. Dopo le due righe di codice, l'oggetto f rappresenta l'autorizzazione per leggere tutti i file nel client come dischi locali del computer.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. Quindi, nell'esempio di codice richiede l'autorizzazione per determinare se l'applicazione dispone dell'autorizzazione per leggere i 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. Read e Write rappresentano le autorizzazioni di file/cartella come descritte 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 consente di distinguere tra i seguenti quattro tipi di accesso dei / o file fornito da FileIOPermissionAccess:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: Accesso in lettura al contenuto del file o l'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 per il contenuto del file o l'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 di sovrascrivere ed eliminazione.Also allows for deletion and overwriting.

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

  • PathDiscovery: Accesso alle informazioni presenti nel percorso stesso.PathDiscovery: Access to the information in the path itself. Ciò consente di proteggere informazioni riservate nel percorso, ad esempio i nomi utente, nonché informazioni sulla struttura di directory che viene visualizzata 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 concede l'accesso a file o cartelle rappresentate dal percorso.This value does not grant access to files or folders represented by the path.

Nota

Offrendo Write è simile alla concessione dell'attendibilità totale, accedere a un assembly.Giving Write access to an assembly is similar to granting it full trust. Se un'applicazione non deve scrivere nel file System, non deve essere presente 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 a uno non implicano diritti a un altro.All these permissions are independent, meaning that rights to one do not imply rights to another. Ad esempio, Write autorizzazione non implica l'autorizzazione Read o Append.For example, Write permission does not imply permission to Read or Append. Se si desidera usare più di un'autorizzazione, possono essere combinati con un OR bit per bit come illustrato nell'esempio di codice che segue.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. Autorizzazioni del file viene definita in termini di percorsi assoluti canonici; le chiamate devono essere sempre eseguite con i percorsi dei file canonico.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermission Descrive le operazioni protette per file e cartelle.FileIOPermission describes protected operations on files and folders. Il 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 di accesso di sicurezza viene eseguito quando viene creato l'handle del file.The security access check is performed when the handle to the file is created. In questo modo il controllo al momento della creazione, viene ridotto al minimo l'impatto sulle prestazioni del controllo della sicurezza.By doing the check at creation time, the performance impact of the security check is minimized. Apertura di un file viene eseguita una volta, durante la lettura e scrittura possono verificarsi più volte.Opening a file happens once, while reading and writing can happen multiple times. Una volta che il file è aperto, non viene più eseguito.Once the file is opened, no further checks are done. Se l'oggetto viene passato a un chiamante non attendibile, si 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 memorizzati in pubblici dati statici globali in cui il codice con minori autorizzazioni possa accedervi.For example, file handles should not be stored in public global statics where code with less permission can access them.

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

Accesso a una cartella implica l'accesso a tutti i file in che esso contenuti, e ha accesso a tutti i file e cartelle nelle 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\ implica Read 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 di .NET Framework antecedenti il .NET Framework 4.NET Framework 4, è possibile usare il CodeAccessPermission.Deny metodo per impedire l'accesso accidentale alle risorse di sistema da 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 obsoleta, e l'accesso alle risorse è determinato esclusivamente da dell'autorizzazione concessa 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 assegnarle le autorizzazioni solo a risorse che il codice è autorizzato ad 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 un ambiente sandbox, vedere come: 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