Meilleur endroit pour enregistrer les informations utilisateur pour les applications Windows XP et Vista

StackOverflow https://stackoverflow.com/questions/147533

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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top