Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以安全的方式保存值。最爱_C#_.net_Winforms_Favorites - Fatal编程技术网

C# 如何以安全的方式保存值。最爱

C# 如何以安全的方式保存值。最爱,c#,.net,winforms,favorites,C#,.net,Winforms,Favorites,我有一个应用程序,希望我的用户保存以下值: LDAP连接字符串 用户名 密码 问题是,这个应用程序是Windows窗体,必须能够在Windows XP/Vista/7上运行,而且还可以在Server 2003和Server 2008上运行 考虑到这一点,您建议我如何保存这些设置三个值。请记住,每个收藏夹(可以是N amount)都有其中一个属性。使用.NET 2.0+提供支持的user.config文件。可能有用 当然,永远不建议将密码保存在明文中。对于像这样的东西。Net有一个独立的存储。

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

  • LDAP连接字符串
  • 用户名
  • 密码
问题是,这个应用程序是Windows窗体,必须能够在Windows XP/Vista/7上运行,而且还可以在Server 2003和Server 2008上运行


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

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


当然,永远不建议将密码保存在明文中。

对于像这样的东西。Net有一个独立的存储。可以选择隔离存储计算机/应用程序/用户等的范围。在范围上删除.Net会在用户或计算机配置文件下创建一个特殊目录,应用程序可以在其中存储特殊的应用程序/用户相关数据。 要获取存储,请使用以下命令:

IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(
    IsolatedStorageScope.Assembly | IsolatedStorageScope.User, null, null);
要获取特定隔离存储中的文件,请使用GetFileName:

string[] fileNames = isoStore.GetFileNames();
要在隔离存储中创建或打开流,请执行以下操作:

// use the correct FileMode flag Open/Create/Trancate/etc.
IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(
    <file_name>, FileMode.Create, isoStore);
//使用正确的FileMode标志Open/Create/tranate/etc。
IsolatedStorageFileStream isoStream=新的IsolatedStorageFileStream(
,FileMode.Create,isoStore);

如果您询问如何以加密方式保存这三个值的列表,我建议您将列表保存在zip文件中,并使用非常强的密码进行保护。
您可以将zip读取为流,无需解压缩。

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


这个问题与加密无关。只是为了消费而保存普通的旧字符串。