我需要为我正在构建的应用程序以加密形式保存用户的登录信息,但我不确定保存文件的最佳位置。我不想将它保存到程序应用程序文件夹中,因为我希望每个用户使用它。
那么保存它的最佳文件夹(或方式)是什么?
编辑:使用C ++。
答案 0 :(得分:3)
似乎是C:\ Documents and Settings \%username%\ Local Settings \ Application Data可能是Wikipedia所指的适当位置。该文章称该位置用于“特定于用户和计算机的应用程序设置”。
编辑:Cruizer在评论中指出(我会在那里回复,但我还不能评论)在Vista中它是C:\ Users \%username%并且不应该硬编码。感谢。
答案 1 :(得分:2)
使用Data Protection API(DPAPI) - XP和Vista中CryptoAPI的一部分。以下是对DPAPI的一个很好的概述 - http://msdn.microsoft.com/en-us/library/ms995355.aspx
答案 2 :(得分:1)
是的,本地应用程序路径看起来像赢家。
我在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);
答案 3 :(得分:0)
答案 4 :(得分:0)
用户信息应始终位于%HOMEDRIVE %% HOMEPATH%(映射到用户主目录)的某个子目录中。没有例外。 每个用户的应用程序特定设置的好地方是%APPDATA%内的子目录。这映射到:XP上的“%HOMEDRIVE %% HOMEPATH%\ Application Data”和Vista上的“%HOMEDRIVE %% HOMEPATH%\ AppData \ Roaming”。
答案 5 :(得分:0)
如果您使用.NET获取特殊文件夹,则可以使用
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
或
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
表示非漫游版本。