2012-05-31 137 views
3

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

在重构网站时,我遇到了一个Microsoft曾经提出的方法,它涉及运行aspnet_regiis命令,以便将加密数据直接插入到web.config文件的ConnectionString部分。这个建议的方法现在被认为是退休内容,尽管它没有说明为什么(除了一些小的引用,一些链接可能不再有效)。

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

我的问题基本上是 - 如果我招谁惹重构现有的功能使用微软的一次推荐的方法?我相信它会比现在的流程更有效率。另外,为什么要将此方法视为退休内容?有没有更好的方法来做到这一点,而不是我的网站支持加密/解密方法?

我在谷歌搜索谷歌& StackOverflow的其他方式,但他们都似乎指的是微软的方式 - 或我目前实施的方式。

回答

1

也许您所指的网站/文档被标记为过时,但背后的技术不是。下面是官方往来,不标记为过时:

我肯定会使用这种技术。

0

我猜他们说文档被认为是退役的内容,因为它是为.NET 2.0框架编写的。正如Simon所说的那样,它背后的技术仍然很好用。

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

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

+0

我最终创建了一个名为'secureAppSettings'的独立部分,并且只对该部分进行了加密 - 从而使正常的appSettings部分未加密。 – Mark

相关问题