FileIOPermission Classe

Définition

Contrôle la possibilité d’accéder aux fichiers et dossiers.Controls the ability to access files and folders. Cette classe ne peut pas être héritée.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
Héritage
FileIOPermission
Attributs
Implémente

Exemples

Les exemples suivants illustrent le code FileIOPermissionqui utilise.The following examples illustrate code that uses FileIOPermission. Après les deux lignes de code suivantes, l’objet f représente l’autorisation de lire tous les fichiers sur les disques locaux de l’ordinateur client.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. L’exemple de code demande ensuite l’autorisation de déterminer si l’application est autorisée à lire les fichiers.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

Après les deux lignes de code suivantes, l’objet f2 représente les autorisations de lecture de C:\test_r et de lecture et d’écriture sur 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. Readet Write représentent les autorisations de fichier/dossier comme décrit précédemment.Read and Write represent the file/folder permissions as previously described. Après avoir créé l’autorisation, le code demande l’autorisation de déterminer si l’application a le droit de lire et d’écrire dans le fichier.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

Remarques

Cette autorisation distingue les quatre types suivants d’accès e/s de fichier fournis FileIOPermissionAccesspar :This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: Accès en lecture au contenu du fichier ou accès aux informations sur le fichier, telles que sa longueur ou l’heure de la dernière modification.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: Accès en écriture au contenu du fichier ou accès pour modifier les informations sur le fichier, par exemple son nom.Write: Write access to the contents of the file or access to change information about the file, such as its name. Permet également la suppression et le remplacement.Also allows for deletion and overwriting.

  • Append: Possibilité d’écrire à la fin d’un fichier uniquement.Append: Ability to write to the end of a file only. Aucune possibilité de lecture.No ability to read.

  • PathDiscovery: Accès aux informations du chemin d’accès lui-même.PathDiscovery: Access to the information in the path itself. Cela permet de protéger les informations sensibles dans le chemin d’accès, telles que les noms d’utilisateur, ainsi que des informations sur la structure de répertoires qui est révélée dans le chemin d’accès.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. Cette valeur n'accorde pas d'accès aux fichiers ou dossiers représentés par le chemin.This value does not grant access to files or folders represented by the path.

Notes

Donner Write accès à un assembly est semblable à l’octroi d’une confiance totale.Giving Write access to an assembly is similar to granting it full trust. Si une application ne doit pas écrire dans le système de fichiers, elle ne Write doit pas avoir accès.If an application should not write to the file system, it should not have Write access.

Toutes ces autorisations sont indépendantes, ce qui signifie que les droits à l’un n’impliquent pas de droits sur un autre.All these permissions are independent, meaning that rights to one do not imply rights to another. Par exemple, Write l’autorisation n’implique pas l' Read autorisation Appendsur ou.For example, Write permission does not imply permission to Read or Append. Si plusieurs autorisations sont souhaitées, elles peuvent être combinées à l’aide d’une opération or au niveau du bit, comme indiqué dans l’exemple de code suivant.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. L’autorisation de fichier est définie en termes de chemins d’accès absolus canoniques. les appels doivent toujours être effectués avec des chemins d’accès de fichier canoniques.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermissiondécrit les opérations protégées sur les fichiers et les dossiers.FileIOPermission describes protected operations on files and folders. La File classe permet d’offrir un accès sécurisé aux fichiers et aux dossiers.The File class helps provide secure access to files and folders. La vérification de l’accès à la sécurité est effectuée lors de la création du handle du fichier.The security access check is performed when the handle to the file is created. En procédant à la vérification au moment de la création, l’impact sur les performances de la vérification de la sécurité est réduit.By doing the check at creation time, the performance impact of the security check is minimized. L’ouverture d’un fichier se produit une fois, tandis que la lecture et l’écriture peuvent se produire plusieurs fois.Opening a file happens once, while reading and writing can happen multiple times. Une fois le fichier ouvert, aucune autre vérification n’est effectuée.Once the file is opened, no further checks are done. Si l’objet est passé à un appelant non fiable, il peut être utilisé de façon inutilisée.If the object is passed to an untrusted caller, it can be misused. Par exemple, les descripteurs de fichiers ne doivent pas être stockés dans des statiques globaux publics où le code avec moins d’autorisations peut y accéder.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccessspécifie les actions qui peuvent être effectuées sur le fichier ou le dossier.FileIOPermissionAccess specifies actions that can be performed on the file or folder. En outre, ces actions peuvent être combinées à l’aide d’une opération de bits or pour former des instances complexes.In addition, these actions can be combined using a bitwise OR to form complex instances.

L’accès à un dossier implique l’accès à tous les fichiers qu’il contient, ainsi qu’un accès à tous les fichiers et dossiers de ses sous-dossiers.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. Par exemple, Read l’accès à C:\folder1\ Read implique l’accès à C:\folder1\file1.txt\, C:\folder1\folder2, C:\folder1\folder2\file2.txt, etc.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.

Notes

Dans les versions de .NET Framework antérieures à .NET Framework 4.NET Framework 4, vous pouviez utiliser la CodeAccessPermission.Deny méthode pour empêcher l’accès par inadvertance aux ressources système par du code de confiance.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. Denyest désormais obsolète, et l’accès aux ressources est désormais déterminé uniquement par le jeu d’autorisations accordé pour un assembly.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. Pour limiter l’accès aux fichiers, vous devez exécuter du code de confiance partielle dans un bac à sable (sandbox) et lui affecter des autorisations uniquement pour les ressources auxquelles le code est autorisé à accéder.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. Pour plus d’informations sur l’exécution d’une application dans un bac à sable (sandbox), consultez Procédure : exécuter du code d’un niveau de confiance partiel dans un bac à sable (sandbox).For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

Constructeurs

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

Initialise une nouvelle instance de la classe FileIOPermission avec l’accès spécifié au fichier ou répertoire désigné et les droits d’accès spécifiés aux informations de contrôle de fichier.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[])

Initialise une nouvelle instance de la classe FileIOPermission avec l’accès spécifié aux fichiers et répertoire désignés, et les droits d’accès spécifiés aux informations de contrôle de fichier.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)

Initialise une nouvelle instance de la classe FileIOPermission avec l’accès spécifié au fichier ou au répertoire désigné.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[])

Initialise une nouvelle instance de la classe FileIOPermission avec l’accès spécifié aux fichiers ou répertoires désignés.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState)

Initialise une nouvelle instance de la classe FileIOPermission avec une autorisation d’accès totale ou nulle, selon ce qui est défini.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

Propriétés

AllFiles

Obtient ou définit l’accès autorisé pour tous les fichiers.Gets or sets the permitted access to all files.

AllLocalFiles

Obtient ou définit l’accès autorisé pour tous les fichiers locaux.Gets or sets the permitted access to all local files.

Méthodes

AddPathList(FileIOPermissionAccess, String)

Ajoute l’accès pour le fichier ou répertoire spécifié à l’état existant de l’autorisation.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[])

Ajoute l’accès aux fichiers et répertoires spécifiés à l’état existant de l’autorisation.Adds access for the specified files and directories to the existing state of the permission.

Assert()

Déclare que le code appelant peut accéder à la ressource protégée par une demande d’autorisation via le code qui appelle cette méthode, même si les appelants situés plus haut dans la pile n’ont pas reçu l’autorisation d’accéder à la ressource.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. L’utilisation de Assert() peut créer des problèmes de sécurité.Using Assert() can create security issues.

(Hérité de CodeAccessPermission)
Copy()

Crée et retourne une copie identique de l’autorisation actuelle.Creates and returns an identical copy of the current permission.

Demand()

Force un SecurityException au moment de l’exécution si tous les appelants figurant plus haut dans la pile des appels ne disposent pas des autorisations spécifiées par l’instance actuelle.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.

(Hérité de CodeAccessPermission)
Deny()

Empêche les appelants plus hauts dans la pile des appels d’utiliser le code qui appelle cette méthode pour accéder à la ressource spécifiée par l’instance actuelle.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Hérité de CodeAccessPermission)
Equals(Object)

Détermine si l’objet FileIOPermission spécifié est égal au FileIOPermission actuel.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement)

Reconstruit une autorisation avec un état spécifié à partir d’un encodage XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode()

Obtient un code de hachage pour l’objet FileIOPermission qui peut être utilisé dans des structures de données et des algorithmes de hachage, comme une table de hachage.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)

Obtient tous les fichiers et répertoires avec le FileIOPermissionAccess spécifié.Gets all files and directories with the specified FileIOPermissionAccess.

GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
Intersect(IPermission)

Crée et retourne une autorisation qui constitue l’intersection entre l’autorisation actuelle et l’autorisation spécifiée.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission)

Détermine si l’autorisation actuelle est un sous-ensemble de l’autorisation spécifiée.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted()

Retourne une valeur qui indique si l’autorisation actuelle est illimitée.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
PermitOnly()

Empêche les appelants plus hauts dans la pile des appels d’utiliser le code qui appelle cette méthode pour accéder à toutes les ressources à l’exception de la ressource spécifiée par l’instance actuelle.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.

(Hérité de CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)

Définit l’accès spécifié au fichier ou répertoire spécifié, en remplaçant l’état existant de l’autorisation.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[])

Définit l’accès spécifié sur les fichiers et répertoires spécifiés, en remplaçant l’état actuel de l’accès spécifié par le nouvel ensemble de chemins.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()

Crée et retourne la représentation de chaîne de l'objet d'autorisation en cours.Creates and returns a string representation of the current permission object.

(Hérité de CodeAccessPermission)
ToXml()

Crée un encodage XML de l’autorisation et de son état actuel.Creates an XML encoding of the permission and its current state.

Union(IPermission)

Crée une autorisation qui est l’union de l’autorisation actuelle et de l’autorisation spécifiée.Creates a permission that is the union of the current permission and the specified permission.

Implémentations d’interfaces explicites

IPermission.Demand() (Hérité de CodeAccessPermission)
IStackWalk.Assert() (Hérité de CodeAccessPermission)
IStackWalk.Demand() (Hérité de CodeAccessPermission)
IStackWalk.Deny() (Hérité de CodeAccessPermission)
IStackWalk.PermitOnly() (Hérité de CodeAccessPermission)

S’applique à

Voir aussi