如何以安全的方式保存价值。即收藏夹

时间:2011-04-03 01:50:30

标签: c# .net winforms favorites

我有一个应用程序,我希望我的用户保存这些值:

  • LDAP连接字符串
  • 用户名
  • 密码

问题是这个应用程序是Windows Forms,必须能够在Windows XP / Vista / 7上运行,但也能在Server 2003和Server 2008上运行。

考虑到这一点,您如何建议我将这些设置保存为三个值。请记住,每个收藏(可以是N金额)都具有这些属性中的一个。

4 个答案:

答案 0 :(得分:0)

使用.NET 2.0+提供支持的user.config文件。 This可能有用。

当然,绝不建议以明文形式保存密码。

答案 1 :(得分:0)

对于像这样的事情.Net有一个独立的存储空间。可以选择隔离存储机器/应用程序/用户等的范围。在范围上,.Net在用户或机器配置文件下创建一个特殊目录,其中应用程序可以存储特殊的应用程序/用户相关数据。 要获取存储空间,请使用以下commad:

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);

答案 2 :(得分:0)

如果您询问如何以加密方式保存这三个值的列表,我建议您使用Ionic.Zip将该列表保存在受强密码保护的zip文件中。
您可以将zip作为流读取,而无需解压缩。

答案 3 :(得分:0)

您可以在System.Security.Cryptography中使用ProtectedData来安全地保存这些内容,以便只有用户才能解密它。 Windows在内部使用它来保存您的登录详细信息。

MSDN Article on ProtectedData