如何在Web.config中加密连接字符串 - 退休内容?

时间:2012-05-31 15:10:25

标签: asp.net encryption web-config deprecated aspnet-regiis.exe

我目前有一个ASP.NET网站,其web.config文件中有一个加密的连接字符串。这些设置位于常规AppSettings部分,而不是ConnectionString部分。在应用程序代码中,我们根据需要在运行时手动解密连接字符串。

当在重构现场工作,我碰到微软曾经建议涉及为了插入加密的数据直接进入web.config文件的ConnectionString部分运行的aspnet_regiis命令的方法。这个建议的方法现在被认为是退役内容,虽然它没有说明原因(除了一些小的参考,某些链接可能不再有效)。

这是我所指的网站:
How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI

我的问题基本上是 - 我是否应该重构现有功能以使用微软推荐的方式?我相信它比现在的流程更有效率。另外,为什么这种方法会被视为退役内容?有没有更好的方法来实现这一点,而不是我的网站支持加密/解密方法?

我搜索Google& StackOverflow用于实现此目的的其他方式,但它们似乎都是指Microsoft的方式 - 或者我目前实现它的方式。

2 个答案:

答案 0 :(得分:1)

也许你所指的网站/ doc被标记为过时,但背后的技术却不是。以下是官方链接,未标记为已废弃:

我肯定会使用这项技术。

答案 1 :(得分:0)

我猜他们说文档被认为是退役内容,因为它是为.NET 2.0框架编写的。话虽如此,正如西蒙所说,其背后的技术仍然可以使用。

使用aspnet_regiis加密web.config文件的好处是它对应用程序是透明的。您可以编写逻辑,假设appSettings或connectionStrings部分未加密,如果使用此方法对它们进行加密,.NET框架将在为您提供值之前对其进行解密。

使用此方法时要记住的一件事是它会加密整个appSettings部分。如果你在加密后打开web.config,你将看不到任何密钥,只看到一大堆加密的数据。