我们正在使用自定义配置部分(通过 NameValueConfigSection)来包含我们的设置。
这些设置通过 configSource 从 web.config 外部化。
因此,web.config 中的条目如下所示:
<configSections>
<section name="customSettings" type="System.Configuration.NameValueSectionHandler" />
</configSections>
<customSettings configSource="config\customSettings.config" />
我们想在我们的生产服务器上加密这个“customSettings.config”文件,所以按照微软的建议运行这个命令(这里:http://msdn.microsoft.com/en-us/library/zhhddkxy.aspx)
aspnet_regiis -pe customSettings -site 4 -app /
这会产生以下输出:
Encrypting configuration section...
Succeeded!
但是,它根本没有成功,将文件完全保留原样
(顺便说一句,如果加密非自定义部分,例如外部化的 connectionStrings 部分,则此命令确实有效)
我已经能够编写一个运行正常的小控制台应用程序,但我们真的想使用标准工具来做应该是标准操作的事情 - 谁能告诉我这是一个限制还是我哪里出错了?
谢谢 :)
最佳答案
我正在将您的代码与 this 进行比较:
加密connectionStrings
在带有机器 key 存储(默认配置)的 DPAPI 提供程序部分,从命令提示符运行此命令:
aspnet_regiis -pe "connectionStrings" -app "/MachineDPAPI" -prov "DataProtectionConfigurationProvider"
在哪里:
-pe
指定要加密的配置节。-app
指定 Web 应用程序的虚拟路径。如果应用是嵌套的,从根目录指定嵌套路径,例如“/test/aspnet/MachineDPAPI
”-prov
指定提供者名称。我想知道您是否需要提供应用程序名称?和/或提供商?
他们的版本将属性值括在引号中。
关于asp.net - 使用 aspnet_regiis 加密 ASP.NET 中的自定义配置部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6251139/