Meilleur endroit pour enregistrer les informations utilisateur pour les applications Windows XP et Vista
-
02-07-2019 - |
Question
Je dois enregistrer les informations de connexion d'un utilisateur sous forme chiffrée pour l'application que je suis en train de construire, mais je ne suis pas sûr du meilleur emplacement pour enregistrer le fichier. Je ne souhaite pas l'enregistrer dans le dossier de l'application du programme car je le souhaite par utilisateur.
Alors, quel est le meilleur dossier (ou moyen) pour l'enregistrer?
Édition: utilisation de C ++.
La solution
On dirait que C: \ Documents and Settings \% nom_utilisateur% \ Local Settings \ Application Les données peuvent correspondre à l'emplacement approprié, selon Wikipedia . L'article indique que cet emplacement est utilisé pour les "Paramètres d'application spécifiques à l'utilisateur et à l'ordinateur".
Edit: Cruizer a souligné dans les commentaires (je répondrais ici mais je ne peux pas encore commenter) que sous Vista, il s’agit de C: \ Users \% username% et qu’il ne devrait pas être codé en dur. Merci.
Autres conseils
Utilisez l’API de protection de données (DPAPI) - une partie de CryptoAPI dans XP et Vista. Voici un bon aperçu de DPAPI - http://msdn.microsoft.com/en -us / library / ms995355.aspx
Oui, le chemin d’application local ressemble à un gagnant.
J'ai trouvé cet article dans MSDN pour le télécharger en C ++: http: / /msdn.microsoft.com/en-us/library/bb762494.aspx
Exemple:
char localAppPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, localAppPath);
utilisez-vous .NET? que diriez-vous de IsolatedStorage ? De cette façon, vous n’auriez pas à vous soucier de l’emplacement du répertoire, il sera simplement là ...
Les informations utilisateur doivent toujours figurer dans un sous-répertoire de% HOMEDRIVE %% HOMEPATH% (qui correspond au répertoire de base de l'utilisateur). Aucune exception. Un bon emplacement pour les paramètres spécifiques à l'application par utilisateur est un sous-répertoire à l'intérieur de% APPDATA%. Cela correspond: "% HOMEDRIVE %% HOMEPATH% \ Application Data " sur XP et à: " % HOMEDRIVE %% HOMEPATH% \ AppData \ Roaming " sur Vista.
Si vous utilisez .NET pour obtenir des dossiers spéciaux, vous pouvez utiliser
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
ou
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
pour la version non itinérante.