代码之家  ›  专栏  ›  技术社区  ›  TomTom

存储位置:用户连接信息?

  •  2
  • TomTom  · 技术社区  · 14 年前

    ;)当用户连接到给定服务器时,我正在编写一个.NET应用程序。应用程序中的所有信息都存储在服务器中。但我想/需要为用户存储以下信息:

    • 他上次连接的服务器
    • 他上次连接的用户名 (不,没有密码,从来没有)。

    你知道把这个最好的放在哪里吗?应用程序配置文件不合理(用户!=admin,application.config对他有写保护)。所以,我的选择是:

    • 在登记处。我自己的子密钥下有两个密钥。
    • 在一种ini文件中,存储在用户的数据目录(appdata)中。这也可能允许以后的扩展(保存更多信息,其中一些信息可能不适合注册表)。

    有人要小费吗?其他选择?到目前为止,我倾向于使用带有自己子文件夹的appdata目录,这只是因为它是一个很好的准备,以便以后像保存配置的本地副本一样保存。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Dinesh    14 年前

    加密并保存在注册表中。

        2
  •  1
  •   Hans Olsson    14 年前

    您可以将app.config存储为用户设置(因此它们在更改后不会真正存储在app.config中,但可以使用相同的api访问)。

    有关范围的详细信息,请参见此处:

    http://msdn.microsoft.com/en-us/library/a65txexh%28VS.80%29.aspx

        3
  •  0
  •   Community rohancragg    7 年前

    如何做什么 迪内什雷库拉 wrote 以下:

    using System.Security;
    using System.Security.Cryptography;
    
    var guid = Assembly.GetEntryAssembly().GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false);
    this.entropy = Encoding.UTF8.GetBytes((guid[0] as System.Runtime.InteropServices.GuidAttribute).Value);
    
    private SecureString Unprotect(byte[] data)
    {
        return UTF8Encoding.UTF8.GetString(ProtectedData.Unprotect(data, this.entropy, DataProtectionScope.CurrentUser)).ToSecureString();
    }
    
    private void Protect(string data)
    {
        ProtectedData.Protect(UTF8Encoding.UTF8.GetBytes(data), this.entropy, DataProtectionScope.CurrentUser)
    }