使用aspnet_regiis在ASP.NET中加密自定义配置部分

时间:2011-06-06 11:10:24

标签: asp.net encryption configuration aspnet-regiis.exe

我们正在使用自定义配置部分(通过NameValueConfigSection)来包含我们的设置。 这些设置通过configSource从web.config中外部化。

因此,web.config中的条目如下所示:

  <configSections>
    <section name="customSettings" type="System.Configuration.NameValueSectionHandler" />
  </configSections>

  <customSettings configSource="config\customSettings.config" />

我们要在生产服务器上加密此“customSettings.config”文件,因此请按照Microsoft的建议运行此命令(此处:http://msdn.microsoft.com/en-us/library/zhhddkxy.aspx

aspnet_regiis -pe customSettings -site 4 -app /

这会产生以下输出:

Encrypting configuration section...
Succeeded!

然而,它根本没有成功,完全保留文件

(顺便说一下,如果加密非自定义部分,例如外部化的connectionStrings部分,此命令可以正常工作

我已经能够编写一个可以正常运行的小型控制台应用程序,但我们真的想使用标准工具来执行应该是标准操作 - 任何人都可以告诉我这是一个限制还是我要去的地方错?

谢谢:)

1 个答案:

答案 0 :(得分:3)

我正在将您的代码与this进行比较:

要使用机器密钥存储(默认配置)使用DPAPI提供程序加密connectionStrings部分,请从命令提示符运行此命令:

aspnet_regiis -pe "connectionStrings" -app "/MachineDPAPI" -prov "DataProtectionConfigurationProvider"

其中:

-pe指定要加密的配置部分。

-app指定了网络应用的虚拟路径。如果应用程序是嵌套的,请从根目录指定嵌套路径,例如“/test/aspnet/MachineDPAPI

-prov指定提供者名称。

我想知道您是否需要提供应用名称?和/或提供者?

他们的版本用引号括起属性值。