Share via


Stockage isolé

Le stockage isolé est un mécanisme de stockage de données qui offre une isolation et une sécurité en définissant des méthodes standardisées pour associer du code à des données enregistrées. La standardisation offre également d'autres avantages. Les administrateurs peuvent utiliser des outils conçus pour manipuler un stockage isolé afin de configurer l'espace de stockage du fichier, de définir des stratégies de sécurité et de supprimer des données inutilisées. Grâce au stockage isolé, votre code ne nécessite plus de chemins d'accès uniques pour spécifier des emplacements sécurisés dans le système de fichiers. En outre, les données sont protégées des autres applications qui possèdent uniquement un accès au stockage isolé. Les informations codées en dur concernant l'emplacement de la zone de stockage d'une application ne sont pas nécessaires.

Cette rubrique contient les sections suivantes :

  • Magasins et compartiments de données

  • Accès sécurisé

  • Emplacements de stockage isolé

  • Création, énumération et suppression du stockage isolé

  • Scénarios de stockage isolé

  • Rubriques connexes

  • Référence

Magasins et compartiments de données

Lorsqu'une application stocke des données dans un fichier, le nom de fichier et l'emplacement de stockage doivent être choisis avec soin afin de réduire la possibilité que l'emplacement de stockage soit connu d'une autre application et, par conséquent, vulnérable en termes d'endommagement. Sans un système standard pour gérer ces problèmes, le développement de techniques adéquates qui minimisent les conflits de stockage peut être complexe et les résultats incertains.

Grâce au stockage isolé, les données sont toujours isolées par utilisateur et par assembly. Les informations d'identification telles que l'origine ou le nom fort de l'assembly déterminent l'identité de l'assembly. Les données peuvent également être isolées par domaine d'application, en utilisant des informations d'identification similaires.

Lors de l'utilisation du stockage isolé, les applications enregistrent des données dans un compartiment unique de données associé à certains aspects de l'identité du code, tels que son éditeur ou sa signature. Le compartiment de données est une abstraction et non un emplacement de stockage spécifique ; il est composé d'au moins un fichier de stockage isolé, appelé un magasin, contenant des emplacements de répertoire réels où sont stockées les données. Par exemple, une application peut comprendre un compartiment de données qui lui est associé, et un répertoire du système de fichiers implémente le magasin qui préserve réellement les données de cette application. Les données enregistrées dans le magasin peuvent être de tout type, à partir des informations sur les préférences de l'utilisateur à des informations sur l'état de l'application. Pour le développeur, l'emplacement du compartiment de données est transparent ; les magasins résident généralement sur le client, mais une application serveur peut utiliser les magasins isolés pour stocker des informations en empruntant l'identité de l'utilisateur légitime. Le stockage isolé peut également stocker des informations sur un serveur avec le profil itinérant d'un utilisateur, de sorte que les informations se déplacent avec l'utilisateur itinérant.

Retour au début

Accès sécurisé

Le stockage isolé permet aux applications qui ne disposent pas d'un niveau de confiance suffisant de stocker des données d'une façon contrôlée par la stratégie de sécurité de l'ordinateur. Ceci est particulièrement utile pour les composants téléchargés qu'un utilisateur doit exécuter avec précaution. La stratégie de sécurité accorde rarement ce genre d'autorisation de code pour accéder au système de fichiers en utilisant des mécanismes d'E/S standard. Toutefois, l'autorisation d'utiliser le stockage isolé est accordée par défaut au code s'exécutant à partir de l'ordinateur local, d'un réseau local ou d'Internet.

Les administrateurs peuvent limiter la quantité de stockage isolé disponible pour un utilisateur ou une application, en fonction d'un niveau de confiance approprié. En outre, les administrateurs peuvent supprimer toutes les données rendues persistantes d'un utilisateur. Pour créer le stockage isolé ou y accéder, l'IsolatedStorageFilePermission approprié doit être accordé au code.

Pour accéder au stockage isolé, le code doit posséder tous les droits de système d'exploitation de la plateforme native. Par exemple, les listes de contrôle d'accès (ACL) qui contrôlent les utilisateurs autorisés à utiliser le système de fichiers doivent être respectées sous Windows 2000. Les applications .NET Framework possèdent déjà des droits de système d'exploitation pour accéder au stockage isolé, sauf si elles effectuent un emprunt d'identité (spécifique à la plateforme). Dans ce cas, l'application doit garantir que l'identité de l'utilisateur empruntée possède les droits de système d'exploitation appropriés pour accéder au stockage isolé. Cet accès permet au code exécuté ou téléchargé à partir du Web de lire et d'écrire facilement dans une zone de stockage liée à un utilisateur particulier.

Retour au début

Emplacements de stockage isolé

Il est parfois utile de vérifier une modification apportée au stockage isolé en utilisant le système de fichiers du système d'exploitation. Les développeurs peuvent également avoir besoin de connaître l'emplacement des fichiers de stockage isolé. Cet emplacement dépend du système d'exploitation. Le tableau suivant illustre les emplacements racine du stockage isolé sur quelques systèmes d'exploitation courants. Examinez les répertoires Microsoft\IsolatedStorage sous cet emplacement racine. Vous devez modifier les paramètres de dossier pour afficher les fichiers et les dossiers cachés afin de visualiser le stockage isolé dans le système de fichiers.

Système d'exploitation

Emplacement dans le système de fichiers

Windows 98, Windows ME - Profils utilisateur non activés

Magasins itinérants =

<SYSTEMROOT>\Application Data

Magasins non itinérants =WINDOWS\Local Settings\Application Data

Windows 98, Windows ME - Profils utilisateur activés

Magasins itinérants =

<SYSTEMROOT>\Profiles\<user>\Application Data

Magasins non itinérants =Windows\Local Settings\Application Data

Windows NT 4.0

<SYSTEMROOT>\Profiles\<user>\Application Data

Windows NT 4.0 - Service Pack 4

Magasins itinérants =

<SYSTEMROOT>\Profiles\<user>\Application Data

Magasins non itinérants =

<SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data

Windows 2000, Windows XP, Windows Server 2003 - Mise à niveau de Windows NT 4.0

Magasins itinérants =

<SYSTEMROOT>\Profiles\<user>\Application Data

Magasins non itinérants =

<SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data

Windows 2000 - Nouvelle installation (et mises à niveau de Windows 98 et Windows NT 3.51)

Magasins itinérants =

<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data

Magasins non itinérants =

<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data

Windows XP, Windows Server 2003 - Nouvelle installation (et mises à niveau de Windows 2000 et Windows 98)

Magasins itinérants =

<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data

Magasins non itinérants =

<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data

Windows Vista

Magasins itinérants =

<SYSTEMDRIVE>\Users\<user>\AppData\Roaming

Magasins non itinérants =

<SYSTEMDRIVE>\Users\<user>\AppData\Local

Retour au début

Création, énumération et suppression du stockage isolé

Les trois classes principales suivantes facilitent l'exécution de tâches qui impliquent le stockage isolé :

Les classes de stockage isolé vous permettent de créer, d'énumérer et de supprimer le stockage isolé. Les méthodes permettant d'effectuer ces tâches sont disponibles par l'intermédiaire de l'objet IsolatedStorageFile. Avec certaines opérations, vous devez disposer de l'IsolatedStorageFilePermission qui représente le droit d'administrer le stockage isolé ; vous pouvez également être amené à disposer de droits de système d'exploitation pour accéder au fichier ou au répertoire. Sous Microsoft Windows NT, Microsoft Windows 2000, Windows XP et Windows Vista, les paramètres de liste de contrôle d'accès (ACL) du fichier peuvent vous empêcher d'accéder au stockage isolé. L'outil Isolated Storage, Storeadm.exe, peut également être utilisé pour une gestion simple de magasin, telle que l'énumération ou la suppression de tous les magasins pour l'utilisateur en cours.

Pour obtenir une série d'exemples illustrant les tâches de stockage isolé courantes, consultez les rubriques « comment » sous Rubriques connexes. Chaque exemple dispose d'un fichier source qui illustre une tâche spécifique. Les instructions d'installation, de compilation et d'exécution sont incluses dans la page principale de chaque exemple. Ces exemples sont fournis en C# uniquement.

Retour au début

Scénarios de stockage isolé

Le stockage isolé est utile dans de nombreuses situations. Cinq des scénarios les plus facilement identifiables sont décrits ci-dessous.

  • Contrôles téléchargés. Les contrôles de code managé téléchargés à partir d'Internet ne sont pas autorisés à écrire sur le disque dur via les classes E/S ordinaires, mais ils peuvent utiliser le stockage isolé pour rendre persistants les paramètres des utilisateurs et les états des applications.

  • Stockage de composant partagé. Les composants partagés entre plusieurs applications peuvent utiliser le stockage isolé pour fournir un accès contrôlé aux magasins de données.

  • Stockage serveur. Les applications serveur peuvent utiliser le stockage isolé pour fournir des magasins individuels à de nombreux utilisateurs qui effectuent des demandes à l'application. Dans la mesure où le stockage isolé est toujours isolé par l'utilisateur, le serveur doit emprunter l'identité de l'utilisateur qui effectue la demande. Dans ce cas, les données sont isolées en fonction de l'identité de l'entité de sécurité, qui est identique à l'identité utilisée par l'application pour établir une distinction entre ses utilisateurs.

  • Profil itinérant. Les applications peuvent également utiliser le stockage isolé avec des profils d'utilisateur itinérant. Ainsi, les magasins isolés d'un utilisateur peuvent être itinérants avec le profil.

Bien que le stockage isolé soit adapté aux scénarios décrits ci-dessus, vous ne devez pas utiliser le stockage isolé dans les situations suivantes.

  • N'utilisez pas le stockage isolé pour stocker des secrets de grande valeur, tels que des clés ou des mots de passe non chiffrés, car le stockage isolé n'est pas protégé contre le code à niveau de confiance extrêmement élevé, contre le code non managé ou contre les utilisateurs de confiance de l'ordinateur.

  • N'utilisez pas le stockage isolé pour stocker du code.

  • N'utilisez pas le stockage isolé pour stocker des paramètres de configuration et de déploiement, qui sont contrôlés par les administrateurs. (les préférences de l'utilisateur ne sont pas considérées comme des paramètres de configuration car les administrateurs ne les contrôlent pas).

De nombreuses applications actuelles utilisent une base de données pour stocker et isoler des données. Dans ce cas, une ou plusieurs lignes d'une base de données peuvent représenter le stockage d'un utilisateur spécifique. Vous pouvez utiliser le stockage isolé plutôt qu'une base de données lorsque le nombre d'utilisateurs est petit, lorsque la surcharge de l'utilisation d'une base de données est significative ou lorsque aucune base de données n'existe. Le stockage isolé peut également être utilisé lorsque l'application nécessite un stockage plus flexible et plus complexe que celui proposé par une ligne d'une base de données.

Retour au début

Rubriques connexes

Titre

Description

Types d'isolation

Décrit les divers types d'isolation.

Obtention de magasins

Donne un exemple d'utilisation de la classe IsolatedStorageFile pour obtenir un magasin isolé par utilisateur et par assembly.

Énumération de magasins

Indique comment utiliser la méthode IsolatedStorageFile.GetEnumerator pour calculer la taille de tout le stockage isolé de l'utilisateur.

Suppression de magasins

Indique comment utiliser la méthode IsolatedStorageFile.Remove de deux façons différentes pour supprimer des magasins isolés.

Comment : anticiper des conditions d'espace insuffisant avec le stockage isolé

Illustre comment mesurer l'espace restant dans un magasin isolé.

Comment : créer des fichiers et des répertoires dans un stockage isolé

Propose plusieurs exemples pour créer des fichiers et des répertoires dans un magasin isolé.

Comment : rechercher des fichiers et des répertoires existants dans un stockage isolé

Illustre comment lire la structure de répertoire et les fichiers dans le stockage isolé.

Lecture et écriture dans des fichiers

Fournit un exemple de l'écriture d'une chaîne dans un IsolatedStorageFile et sa lecture ultérieure.

Comment : supprimer des fichiers et des répertoires dans un stockage isolé

Indique comment supprimer des fichiers et des répertoires d'un stockage isolé

Fichier et flux de données E/S

Explique comment accéder aux flux de données et de fichiers de façon synchrone et asynchrone.

Retour au début

Référence

System.IO.IsolatedStorage.IsolatedStorage