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 pour 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 pour lire C :\test_r et lire et écrire dans 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 pour 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

Attention

La sécurité d’accès du code (CAS) a été déconseillée dans toutes les versions du .NET Framework et de .NET. Les versions récentes de .NET ne respectent pas les annotations CAS et produisent des erreurs si les API liées à CAS sont utilisées. Les développeurs doivent chercher d’autres moyens pour accomplir les tâches liées à la sécurité.

Cette autorisation fait la distinction entre les quatre types d’accès d’E/S de fichier suivants 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, telles que son nom. Autorise également la suppression et le remplacement.

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

  • PathDiscovery: accès aux informations dans le 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 les informations sur la structure de répertoires qui sont révélées 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

Accorder Write l’accès à un assembly revient à lui accorder une confiance totale. Si une application ne doit pas écrire dans le système de fichiers, elle ne doit pas y avoir Write accès.

Toutes ces autorisations sont indépendantes, ce qui signifie que les droits à l’un n’impliquent pas des droits sur une autre. Par exemple, l’autorisation Write n’implique pas l’autorisation de Read ou Append. Si plusieurs autorisations sont souhaitées, elles peuvent être combinées à l’aide d’un or au niveau du bit, comme indiqué dans l’exemple de code qui suit. 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 de fichiers canoniques.

FileIOPermission décrit les opérations protégées sur les fichiers et dossiers. La File classe permet de fournir un accès sécurisé aux fichiers et dossiers. La case activée d’accès de sécurité est effectuée lors de la création du handle du fichier. En effectuant les case activée au moment de la création, l’impact sur les performances de l’case activée de sécurité est réduit au minimum. L’ouverture d’un fichier se produit une seule 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 approuvé, il peut être utilisé à mauvais escient. Par exemple, les handles de fichier ne doivent pas être stockés dans des statiques globales publiques 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’un or au niveau du bit pour former des instances complexes.

L’accès à un dossier implique l’accès à tous les fichiers qu’il contient, ainsi qu’à 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 du .NET Framework antérieures à .NET Framework 4, vous pouvez utiliser la méthode pour empêcher l’accès CodeAccessPermission.Deny par inadvertance aux ressources système par du code approuvé. 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 partiellement approuvé dans un bac à sable et lui attribuer des autorisations uniquement aux ressources auxquelles le code est autorisé à accéder. Pour plus d’informations sur l’exécution d’une application dans un bac à sable, consultez Guide pratique pour exécuter du code de confiance partielle dans un bac à sable.

Constructeurs

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Obsolète.

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[])
Obsolète.

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)
Obsolète.

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[])
Obsolète.

Initialise une nouvelle instance de la classe FileIOPermission avec l’accès spécifié aux fichiers ou répertoires désignés.

FileIOPermission(PermissionState)
Obsolète.

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
Obsolète.

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

AllLocalFiles
Obsolète.

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

Méthodes

AddPathList(FileIOPermissionAccess, String)
Obsolète.

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

AddPathList(FileIOPermissionAccess, String[])
Obsolète.

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

Assert()
Obsolète.

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()
Obsolète.

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

Demand()
Obsolète.

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)
Obsolète.

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

Equals(Object)
Obsolète.

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

(Hérité de CodeAccessPermission)
FromXml(SecurityElement)
Obsolète.

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

GetHashCode()
Obsolète.

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()
Obsolète.

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)
Obsolète.

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

GetType()
Obsolète.

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Intersect(IPermission)
Obsolète.

Crée et retourne une autorisation qui constitue l’intersection entre l’autorisation actuelle et l’autorisation spécifiée.

IsSubsetOf(IPermission)
Obsolète.

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

IsUnrestricted()
Obsolète.

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

MemberwiseClone()
Obsolète.

Crée une copie superficielle du Object actuel.

(Hérité de Object)
PermitOnly()
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 à toutes les ressources à l’exception de la ressource spécifiée par l’instance actuelle.

(Hérité de CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)
Obsolète.

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[])
Obsolète.

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()
Obsolète.

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

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

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

Union(IPermission)
Obsolète.

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

S’applique à

Voir aussi