FileIOPermission Classe

Définition

Attention

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

Contrôle la possibilité d’accéder aux fichiers et dossiers. Cette classe ne peut pas être héritée.

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
Héritage
FileIOPermission
Attributs
Implémente

Exemples

Les exemples suivants illustrent le code qui utilise 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. L’exemple de code demande ensuite l’autorisation de déterminer si l’application est autorisée à lire les fichiers.

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 c:\ test_r et de lecture et d’écriture sur C:\example\out.txt. Read et Write représentent les autorisations de fichier/dossier comme décrit précédemment. 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.

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 par 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.

  • Write: Accès en écriture au contenu du fichier ou accès pour modifier les informations sur le fichier, par exemple son nom. Permet également la suppression et le remplacement.

  • Append: Possibilité d’écrire uniquement à la fin d’un fichier. Aucune possibilité de lecture.

  • PathDiscovery: Accès aux informations du chemin d’accès lui-même. 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. Cette valeur n'accorde pas d'accès aux fichiers ou dossiers représentés par le chemin.

Notes

Donner Write accès à un assembly est semblable à l’octroi d’une confiance totale. Si une application ne doit pas écrire dans le système de fichiers, elle ne doit pas avoir Write accès.

Toutes ces autorisations sont indépendantes, ce qui signifie que les droits à l’un n’impliquent pas de droits sur un autre. Par exemple, l' Write autorisation n’implique pas l’autorisation sur Read ou 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. 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.

FileIOPermission décrit les opérations protégées sur les fichiers et les dossiers. La File classe permet d’offrir un accès sécurisé aux fichiers et aux dossiers. La vérification de l’accès à la sécurité est effectuée lors de la création du handle du fichier. 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. L’ouverture d’un fichier se produit une fois, tandis que la lecture et l’écriture peuvent se produire plusieurs fois. Une fois le fichier ouvert, aucune autre vérification n’est effectuée. Si l’objet est passé à un appelant non fiable, il peut être utilisé de façon inutilisée. 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.

FileIOPermissionAccess spécifie les actions qui peuvent être effectuées sur le fichier ou le dossier. En outre, ces actions peuvent être combinées à l’aide d’une opération de bits or pour former des instances complexes.

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. Par exemple, Read l’accès à C:\folder1\ implique Read l’accès à C:\folder1\file1.txt, C:\folder1\folder2 \ , C:\folder1\folder2\file2.txt, etc.

Notes

dans les versions de la .NET Framework antérieures à la .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. Deny est 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. 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. Pour plus d’informations sur l’exécution d’une application dans un bac à sable (sandbox), consultez Comment : exécuter du code partiellement fiable dans un bac à sable (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.

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.

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é.

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.

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.

Propriétés

AllFiles

Obtient ou définit l’accès autorisé pour tous les fichiers.

AllLocalFiles

Obtient ou définit l’accès autorisé pour tous les fichiers locaux.

Méthodes

AddPathList(FileIOPermissionAccess, String)

Ajoute l’accès pour le fichier ou répertoire spécifié à l’état existant de l’autorisation.

AddPathList(FileIOPermissionAccess, String[])

Ajoute l’accès aux fichiers et répertoires spécifiés à l’état existant de l’autorisation.

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. L’utilisation de Assert() peut créer des problèmes de sécurité.

(Hérité de CodeAccessPermission)
Copy()

Crée et retourne une copie identique de l’autorisation actuelle.

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.

(Hérité de CodeAccessPermission)
Deny()
Obsolète.
Obsolète.

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.

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

Détermine si l'objet FileIOPermission spécifié est égal à FileIOPermission en cours.

Equals(Object)

Détermine si l'objet CodeAccessPermission spécifié est égal à CodeAccessPermission en cours.

(Hérité de CodeAccessPermission)
FromXml(SecurityElement)

Reconstruit une autorisation avec un état spécifié à partir d’un encodage XML.

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.

GetHashCode()

Obtient un code de hachage pour l’objet CodeAccessPermission qui peut être utilisé dans des structures de données et des algorithmes de hachage, comme une table de hachage.

(Hérité de CodeAccessPermission)
GetPathList(FileIOPermissionAccess)

Obtient tous les fichiers et répertoires avec le FileIOPermissionAccess spécifié.

GetType()

Obtient le Type de l'instance actuelle.

(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.

IsSubsetOf(IPermission)

Détermine si l’autorisation actuelle est un sous-ensemble de l’autorisation spécifiée.

IsUnrestricted()

Retourne une valeur qui indique si l’autorisation actuelle est illimitée.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(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.

(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.

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.

ToString()

Crée et retourne une chaîne représentant l’objet d’autorisation actuel.

(Hérité de CodeAccessPermission)
ToXml()

Crée un encodage XML de l’autorisation et de son état actuel.

Union(IPermission)

Crée une autorisation qui est l’union de l’autorisation actuelle et de l’autorisation spécifiée.

Implémentations d’interfaces explicites

IPermission.Demand()

Lève une SecurityException au moment de l'exécution si les conditions de sécurité ne sont pas réunies.

(Hérité de CodeAccessPermission)
IStackWalk.Assert()

Déclare que le code appelant peut accéder à la ressource identifiée par l’objet d’autorisation actuel, même si les appelants situés plus haut dans la pile n’ont pas reçu l’autorisation d’accéder à la ressource.

(Hérité de CodeAccessPermission)
IStackWalk.Demand()

Détermine au moment de l’exécution si tous les appelants dans la pile des appels ont reçu l’autorisation spécifiée par l’objet d’autorisation actuel.

(Hérité de CodeAccessPermission)
IStackWalk.Deny()

Provoque l’échec de chaque Demand() pour l’objet actuel qui passe par le code appelant.

(Hérité de CodeAccessPermission)
IStackWalk.PermitOnly()

Entraîne l’échec de chaque Demand() pour tous les objets à l’exception de l’objet actuel qui passe via le code appelant, même si le code plus haut dans la pile des appels a reçu l’autorisation d’accéder aux autres ressources.

(Hérité de CodeAccessPermission)

S’applique à

Voir aussi