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