是否可以从 web.config 加密指定为 configSource 的配置文件?

Is it possible to encrypt a config file specified as a configSource from web.config?

我的 web.config 中有一个自定义部分,我需要加密。这个自定义配置部分使用 configSource 属性指向一个单独的配置文件(因为这个文件不受源代码控制),我希望这个单独的配置文件被加密。我没有运气使用 aspnet_regiis.exe 加密此部分。

我想要实现的目标是否可行?

我的web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="protectedAppSettings" type="System.Configuration.NameValueSectionHandler, System,Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />       
    </configSections>       
    <protectedAppSettings configSource="config\EnvironmentConfigurations\ProtectedAppSettings.config" />
  </configuration>

我的自定义配置文件:

<?xml version="1.0" encoding="utf-8"?>
<protectedAppSettings>  
  <add key="XXX" value="xxx"/>
</protectedAppSettings>

我已将 aspnet_regiis 添加到我的路径中,以便我可以从我网站的根目录中调用它。这是我正在执行的命令:

aspnet_regiis -pef protectedAppSettings ""

我从这个命令得到的输出告诉我加密成功

我发现 this link 说它应该 可以工作 但它不适合我..

这是因为我用来定义我的配置部分的类型。尽管没有文档证明这一点,但似乎 NameValueSectionHandler 类型在用于配置源时并未加密。解决方案是将类型更改为 System.Configuration.AppSettingsSection 并且加密工作正常