首页 文章

在app.config中为WinForms应用程序加密连接字符串

提问于
浏览
0

我在Web和WinForms应用程序之间使用通用数据库代码 . 我研究并研究了如何加密web.config和app.config文件的连接字符串部分 . 那部分还可以 . 我还研究了如何在我的Azure Web应用程序中解密连接字符串,这没关系 . 在将.pfx文件加载到计算机的证书存储区之后,我还可以读取WinForms应用程序中的连接字符串,但是在重新启动后它失败了,因为它无法在pfx文件中找到私钥 .

我正在使用使用这些命令创建的证书:

makecert -r -pe -n“CN = myconfig”-sky exchange“myconfig.cer”-sv“myconfig.pvk”

pvk2pfx -pvk“myconfig.pvk”-spc“myconfig.cer”-pfx“myconfig.pfx”-pi

这给了我3个文件:myconfig.pvk,myconfig.cer,myconfig.pfx

我认为问题是私钥没有存储在pfx文件中,并且每次重启后都需要重新进行身份验证 - 但我不知道加密知道如何做到这一点 . 此外,WinForms应用程序非常有限地分发到受控机器上,所以我想手动安装每个证书 .

我是加密的新手而且卡住了 . 我可以将.pfx文件加载到计算机上,输入私钥(我知道但不会告诉用户)并持久保存?我错过了什么 - 我应该安装不同的证书文件,还是生成它?我不想让私钥可访问 . 如果有人窃取app.config,我不希望他们能够解密它 .

注意:我已阅读有关RsaProtectedConfigurationProvider和DPAPIProtectedConfigurationProvider的信息 . 我选择使用PKCS12ProtectedConfigurationProvider,因为它适用于Azure,ref:http://blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx

1 回答

  • 0

    当我将应用程序部署到我的本地IIS时,我偶然发现了错误,并且收到错误“无法使用提供程序'CustomProvider'解密 . 来自提供程序的错误消息:Keyset不存在”

    私钥存在权限问题,在本文的帮助下解决:

    CryptographicException 'Keyset does not exist', but only through WCF

    本文包含许多可能的原因,解决我的问题的原因是修复了“MMC证书”管理单元中“管理私钥”中的权限(请参阅链接,步骤布局合理) .

相关问题