El mejor lugar para guardar información del usuario para aplicaciones de Windows XP y Vista

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

Pregunta

Necesito guardar la información de inicio de sesión de un usuario en forma cifrada para esta aplicación que estoy creando, pero no estoy seguro de cuál es el mejor lugar para guardar el archivo. No quiero guardarlo en la carpeta de la aplicación del programa como lo quiero por usuario.

Entonces, ¿cuál es la mejor carpeta (o forma) para guardarlo?

Editar: Usar C ++.

¿Fue útil?

Solución

Parece que C: \ Documents and Settings \% username% \ Local Settings \ Application Data puede ser el lugar apropiado según Wikipedia . El artículo dice que esta ubicación se utiliza para " configuraciones de aplicaciones específicas del usuario y específicas de la computadora " ;.

Editar: Cruizer señaló en los comentarios (respondería allí pero aún no puedo comentar) que en Vista es C: \ Users \% username% y que no debería estar codificado. Gracias.

Otros consejos

Utilice la API de protección de datos (DPAPI), una parte de CryptoAPI en XP y Vista. Aquí hay una buena descripción general de DPAPI: http://msdn.microsoft.com/en -us / library / ms995355.aspx

Sí, la ruta de la aplicación local parece ganadora.

Encontré este artículo en MSDN para obtenerlo en C ++: http: / /msdn.microsoft.com/en-us/library/bb762494.aspx

Ejemplo:

char localAppPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, localAppPath);

¿estás usando .NET? ¿qué tal IsolatedStorage ? De esa manera no tendría que preocuparse por la ubicación del directorio, simplemente estará allí ...

La información del usuario siempre debe ir en algún subdirectorio en% HOMEDRIVE %% HOMEPATH% (que se asigna al directorio principal de los usuarios). Sin excepciones. Un buen lugar para la configuración específica de la aplicación por usuario es un subdirectorio dentro de% APPDATA%. Esto se asigna a: "% HOMEDRIVE %% HOMEPATH% \ Application Data " en XP y para: " % HOMEDRIVE %% HOMEPATH% \ AppData \ Roaming " en Vista.

Si está utilizando .NET para obtener carpetas especiales, puede usar

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

o

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

para la versión no itinerante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top