我已经在Web.config中完成了以下操作
<configuration>
<configSections>
<section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" allowLocation="true" />
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
... etc
然后在Views/Web.config中,我试图这样使用它
<secureAppSettings>
<!--Captcha keys-->
<add key="RecaptchaPrivateKey" value="somevalue" />
<add key="RecaptchaPublicKey" value="someothervalue" />
</secureAppSettings>
但是,每次尝试打开网站时,我都会收到以下错误:
配置错误配置节“secureAppSettings”无法
因为缺少节声明而被读取
我不明白我该怎么做。我目前正试图在如下视图中使用它:
@((NameValueCollection)WebConfigurationManager.GetSection("secureAppSettings"))["RecaptchaPublicKey"]
编辑:
我已经尝试将configSections移到View/web.config
结果是出现以下错误消息
分析器错误消息:为secureAppSettings配置节创建处理程序时出错:指定的程序集名称或指定的代码基无效。(HRESULT的异常:0x80131047)
我认为这是我做错了,但现在我明白了,也许我需要在这里修复一些东西,而不是用另一种方式。
不过,对我来说,这条消息和以前一样神秘。。
澄清我想归档的东西。
我的Web.config中有一些敏感信息需要加密。
我知道我可以创建一个secureAppSettings部分,然后从那里对其进行加密。我之所以想将这些信息从appSettings部分中分离出来,是因为其中有很多其他信息,我真的不需要加密。
最终,所有这些都将导致我能够制作一个MSI网站安装程序,在安装过程中,我可以在加密secureAppSettings之前更改或添加appSettings和secureAppSettings部分的设置。为了方便我正在建设的网站的设置和安装。
现在我不确定我的解决方案目前的方式是否可行,但如果不行,那么我希望我的方向是正确的,以解决我的最终目标,能够制作一个MSI安装程序,在那里我可以在安装期间更改配置文件,并加密任何敏感信息。