Asp.net 如何加密Web.config-失效内容中的连接字符串?

Asp.net 如何加密Web.config-失效内容中的连接字符串?,asp.net,encryption,web-config,deprecated,aspnet-regiis.exe,Asp.net,Encryption,Web Config,Deprecated,Aspnet Regiis.exe,我目前有一个ASP.NET网站,它的web.config文件中有一个加密的连接字符串。设置位于常规AppSettings部分,而不是ConnectionString部分。在应用程序代码中,我们根据需要在运行时手动解密连接字符串 在重构网站的过程中,我遇到了微软曾经建议的一种方法,它包括运行aspnet\u regiis命令,以便将加密数据直接插入web.config文件的ConnectionString部分。这个建议的方法现在被认为是失效的内容,尽管它没有说明原因(除了一个小的参考,一些链接可能

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

在重构网站的过程中,我遇到了微软曾经建议的一种方法,它包括运行
aspnet\u regiis
命令,以便将加密数据直接插入web.config文件的ConnectionString部分。这个建议的方法现在被认为是失效的内容,尽管它没有说明原因(除了一个小的参考,一些链接可能不再有效)

这是我指的网站:

我的问题基本上是——我是否应该用微软曾经推荐的方法重构现有的功能?我相信这将比目前的进程更有效率。另外,为什么此方法会被视为失效内容?有没有比我的站点支持加密/解密方法更好的方法


我在Google&StackOverflow上搜索过其他方法,但它们似乎都参考了微软的方法——或者我目前实施的方法。

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

  • (举个例子)还有一个RsaProtectedConfigurationProvider,它能够对节进行加密
  • 使用-pe选项

我肯定会使用这项技术。

我猜他们会说该文档被认为是过时的内容,因为它是为.NET2.0框架编写的。尽管如此,正如西蒙所说,它背后的技术仍然可以使用

使用
aspnet\u regis
加密web.config文件的好处在于它对应用程序是透明的。您可以编写逻辑,假设appSettings或ConnectionString部分未加密,并且如果使用此方法对它们进行加密,.NET framework将在给您提供值之前对它们进行解密


使用此方法需要记住的一点是,它将加密整个appSettings部分。如果在加密后打开web.config,您将看不到任何密钥,而只是一大块加密的数据。

我创建了一个名为“secureAppSettings”的单独部分,只对该部分进行了加密,从而使普通的appSettings部分未加密。