我有一个应用程序,我希望我的用户保存这些值:
- LDAP 连接字符串
- 用户名
- 密码
问题是这个应用程序是 Windows 窗体,必须能够在 Windows XP/Vista/7 上运行,而且还可以在 Server 2003 和 Server 2008 上运行。
考虑到这一点,您如何建议我将这些设置保存为三个值。请记住,每个收藏夹(可以是 N 个)都具有这些属性中的一个。
使用 .NET 2.0+ 提供支持的 user.config 文件。这可能很有用。
当然,不建议以明文形式保存密码。
您可以使用 System.Security.Cryptography 中的 ProtectedData 安全地保存这些内容,以便只有用户才能解密它。Windows 在内部使用它来保存您的登录详细信息。
对于这样的事情,.Net 有一个独立的存储。可以选择隔离存储机器/应用程序/用户等的范围。根据范围,.Net 在用户或机器配置文件下创建一个特殊目录,应用程序可以在其中存储特殊的应用程序/用户相关数据。要获取存储,请使用以下命令:
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(
IsolatedStorageScope.Assembly | IsolatedStorageScope.User, null, null);
要获取特定隔离存储中的文件,请使用 GetFileNames:
string[] fileNames = isoStore.GetFileNames();
在隔离存储中创建或打开流:
// use the correct FileMode flag Open/Create/Trancate/etc.
IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(
<file_name>, FileMode.Create, isoStore);
如果您询问如何以加密方式保存这三个值的列表,我可以建议将该列表保存在一个 zip 文件中,该文件使用Ionic.Zip受非常强的密码保护。
您可以将 zip 作为流读取,而无需解压缩。