请注意,我知道这个问题:
Encrypting AppSettings in file external to Web.Config,但这不是重复的问题。那个问题有一个答案,允许加密外部appSettings配置文件,但前提是使用
Encrypting AppSettings in file external to Web.Config,但这不是重复的问题。那个问题有一个答案,允许加密外部appSettings配置文件,但前提是使用
configSource
属性链接appSettings。我想使用file
属性。所以,我的Web.config中有这样的内容:<appSettings file="ExternalSettings.config">
<add key="InternalSetting" value="Test123" />
</appSettings>
在同一目录下,有一个Web.config文件和一个ExternalSettings.config文件,其中后者拥有自己的appSettings
部分。运行Web应用时,两个appSettings
内容将会被合并。然而,如果我只是像这样加密我的ExternalSettings.config文件:
var webConfig = WebConfigurationManager.OpenWebConfiguration("~/ExternalSettings.config");
ConfigurationSection section = webConfig.GetSection("appSettings");
if (!section.SectionInformation.IsProtected) {
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
webConfig.Save();
}
我收到了一个 ConfigurationErrorsException
错误提示,内容为:
"无法为所请求的 Configuration 对象创建配置文件。"
(顺便说一下,该代码在加密只存在于 Web.config 中的 appSettings
部分方面运行良好)
有没有办法加密我的 ExternalSettings.config 文件中的设置,同时让 Web.Config 中的设置保持未加密状态?