存储用户凭据

时间:2014-08-05 09:55:50

标签: c# wpf wpf-controls wpfdatagrid

我尝试在注册表编辑器中存储用户凭据。它已成功运行。

  RegistryKey key;
  key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\\XXX\\Credential");
  key.SetValue("Name", txtusername);
  key.SetValue("Password", password);
  key.Close();

如何在wpf应用程序的凭证管理器中安全地存储用户凭证?

1 个答案:

答案 0 :(得分:0)

如果仅在应用程序本身内使用凭据,则可以加密它们并将它们添加到app.config文件中。

创建一个类型为connectionstring的应用程序设置,并将其称为myconnectionstring

使用Common.DbConnectionStringBuilder,您可以构建"连接字符串"使用您的用户名和密码在对话框的背面,要求用户输入它们。

然后(在VB中)

        Dim config As System.Configuration.Configuration = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None)
        Dim section As System.Configuration.ConnectionStringsSection = DirectCast(config.GetSection("connectionStrings"), System.Configuration.ConnectionStringsSection)

        section.ConnectionStrings(My.Settings.ToString & ".myconnectionstring").ConnectionString = ConnectionString

        section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")

        config.Save(System.Configuration.ConfigurationSaveMode.Modified)

        System.Configuration.ConfigurationManager.RefreshSection("connectionStrings")

这应该在app.config中加密保存

当读取数据时,.Net将为您处理所有解密。

只需创建另一个Common.DbConnectionStringBuilder对象,将其connectionstring属性分配给Configuration.ConfigurationManager.ConnectionStrings(My.Settings.ToString & ".myconnectionstring").connectionstring,然后读取您需要的字段。

希望这有帮助