在app.config中加密连接字符串以便在不同系统上使用

5
我使用了这篇文章来加密我的app.config文件。这里是文章链接。问题在于,当我在另一台电脑上测试该应用程序时,该系统无法解密连接字符串。
我还阅读了MSDN上的这篇文章并注意到以下内容:
引用:

连接字符串只能在加密它的计算机上被解密。

那么现在我该如何加密app.config中的连接字符串呢?

你能发布一下你加密的代码吗? - Krsna Kishore
我使用了这篇文章进行加密,它还有一个可以加密配置文件的程序。 - zex_rectooor
啊,我明白了。有这篇文章可以用来加密,它会自动处理加密的问题。至于解密,asp.net会自动处理,所以你不需要担心解密的问题。 - Krsna Kishore
我需要在 app.config 中进行加密,而不是 web.config。无论如何,我尝试了这篇文章,但在命令提示符中,Windows 显示“无法打开”错误。 - zex_rectooor
让我们在聊天中继续这个讨论 - Krsna Kishore
显示剩余3条评论
1个回答

4

您提到需要解决appconfig的问题。您可以采用与web.config相同的解决方案,只需将app.config重命名为web.config,使用aspnet_regiis工具进行加密,然后将其重新命名为app.config。

  1. 将app.config重命名为web.config
  2. 打开命令提示符并键入: %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionSt rings" c:\包含您的web.config文件夹(停止在文件夹级别上,并不要加上结尾的“\”)
  3. 将web.config重新命名为app.config

您可以使用记事本打开它以查看加密文件。在Visual Studio中,您将看到它已解密。您可以像未加密时一样使用连接字符串。


2
但是 aspnet_regiis 使用 DPAPI 作为“本地密钥”,只能在特定计算机上和仅限于 Windows 计算机上工作。 - MrCalvin
@MrCalvin,写下这篇答案时,我的意图是为Windows提供支持,我没有在任何地方提到会支持其他系统,如果我说了那样的话,你可以反驳我。无论如何,感谢你指出来。 - Krsna Kishore
2
但它甚至不能在Windows上工作,它只能在一个当前的Windows计算机上工作,而不是像问题标题中所述的“..不同的系统..”。 - MrCalvin
@MrCalvin,是的,那个系统将是您的Windows服务器,如果您想在多台计算机上使用它,请编写一个PowerShell脚本并根据需要执行它们。 - Krsna Kishore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接