【问题标题】:How can I save values in a safe way. ie for Favorites如何以安全的方式保存值。即收藏夹
【发布时间】:2011-04-03 01:50:29
【问题描述】:

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

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

问题是这个应用程序是 Windows 窗体,必须能够在 Windows XP/Vista/7 上运行,而且还可以在 Server 2003 和 Server 2008 上运行。

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

【问题讨论】:

  • 这个问题与加密无关。只是保存普通的旧字符串以供使用。

标签: c# .net winforms favorites


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    对于这样的事情,.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);
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        MSDN Article on ProtectedData

        【讨论】:

          猜你喜欢
          • 2013-10-20
          • 2021-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-24
          • 1970-01-01
          • 1970-01-01
          • 2018-01-25
          相关资源
          最近更新 更多