Лучшее место для сохранения пользовательской информации для приложений Windows XP и Vista.

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

Вопрос

Мне нужно сохранить данные для входа в систему пользователя в зашифрованном виде для приложения, которое я создаю, но я не уверен, где лучше всего сохранить файл.Я не хочу сохранять его в папке приложения программы, так как мне нужно, чтобы это было для каждого пользователя.

Так в какую папку (или способ) лучше всего его сохранить?

Редактировать:Использование С++.

Это было полезно?

Решение

Похоже, что C:\Documents and Settings\%username%\Local Settings\Application Data может быть подходящим местом в соответствии с Википедия.В статье говорится, что это местоположение используется для «Настройки приложения для конкретного пользователя и компьютера».

Редактировать:Крузер отметил в комментариях (я бы ответил там, но пока не могу комментировать), что в Vista это C:\Users\%username% и что его не следует жестко запрограммировать.Спасибо.

Другие советы

Используйте Data Protection API (DPAPI) — часть CryptoAPI в XP и Vista.Вот хороший обзор DPAPI — http://msdn.microsoft.com/en-us/library/ms995355.aspx

Да, путь к локальному приложению выглядит выигрышным.

Я нашел эту статью в MSDN, чтобы получить ее на C++: http://msdn.microsoft.com/en-us/library/bb762494.aspx

Пример:

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

вы используете .NET?как насчет ИзолированныйХранения?Таким образом, вам не придется беспокоиться о местоположении каталога, он просто будет там...

Информация о пользователе всегда должна находиться в каком-либо подкаталоге %HOMEDRIVE%%HOMEPATH% (который соответствует домашнему каталогу пользователя).Без исключений.Хорошим местом для конкретных настроек приложения для каждого пользователя является подкаталог внутри %APPDATA%.Это соответствует:«%HOMEDRIVE%%HOMEPATH%\Application Data» в XP и для:«%HOMEDRIVE%%HOMEPATH%\AppData oaming» в Vista.

Если вы используете .NET для получения специальных папок, вы можете использовать

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

или

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

для версии без роуминга.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top