我需要为我正在构建的这个应用程序以加密形式保存用户的登录信息,但我不确定保存文件的最佳位置。我不想将它保存到程序应用程序文件夹中,因为我希望每个用户都有它。
那么保存它的最佳文件夹(或方法)是什么?
编辑:使用 C++。
我需要为我正在构建的这个应用程序以加密形式保存用户的登录信息,但我不确定保存文件的最佳位置。我不想将它保存到程序应用程序文件夹中,因为我希望每个用户都有它。
那么保存它的最佳文件夹(或方法)是什么?
编辑:使用 C++。
根据维基百科,似乎 C:\Documents and Settings\%username%\Local Settings\Application Data 可能是合适的地方。文章称此位置用于“特定于用户和特定于计算机的应用程序设置”。
编辑:Cruizer 在评论中指出(我会在那里回复,但我还不能发表评论)在 Vista 中它是 C:\Users\%username% 并且它不应该是硬编码的。谢谢。
使用数据保护 API (DPAPI) - XP 和 Vista 中 CryptoAPI 的一部分。这是 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% 内的子目录。这映射到:XP 上的“%HOMEDRIVE%%HOMEPATH%\Application Data”和 Vista 上的“%HOMEDRIVE%%HOMEPATH%\AppData\Roaming”。
如果您使用 .NET 获取特殊文件夹,您可以使用
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
或者
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
对于非漫游版本。