【问题标题】:Encrypt custom config section in ASP.NET using aspnet_regiis使用 aspnet_regiis 加密 ASP.NET 中的自定义配置部分
【发布时间】:2011-09-09 05:13:37
【问题描述】:

我们正在使用自定义配置部分(通过 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!

但是,它根本没有成功,文件保持原样

(顺便说一句,如果加密非自定义部分,例如外部连接字符串部分,此命令确实有效

我已经能够编写一个运行良好的小控制台应用程序,但我们真的想使用标准工具来执行应该是标准操作的操作 - 谁能告诉我这是否是一个限制或我要去哪里错了吗?

谢谢:)

【问题讨论】:

  • 我也有同样的问题。如果我将 customSettings 放在 web.config 中,它们会加密,但如果我使用 configSource 并将它们放在单独的文件中,aspnet_regiis 会说加密成功,但文件中的节点未加密。我还在同一目录中的另一个文件中加密了连接字符串,它工作正常,所以我知道这不是路径问题。如果有人找到了这个问题的答案,请告诉我。

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


【解决方案1】:

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

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

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

地点:

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

-app 指定 Web 应用的虚拟路径。如果应用是嵌套的,请指定从根目录开始的嵌套路径,例如“/test/aspnet/MachineDPAPI

-prov 指定提供者名称。

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

并且它们的版本将属性值括在引号中。

【讨论】:

  • 我提供应用程序名称“/”= root(在您的情况下,您有一个从根目录下命名的应用程序)。不,不需要 Prov,如文档中所述:“如果您不使用 -prov 选项指定提供程序,则使用配置为 defaultProvider 的提供程序。”
猜你喜欢
  • 2011-12-24
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2011-12-21
  • 2012-10-01
  • 2010-12-01
  • 2010-10-04
  • 1970-01-01
相关资源
最近更新 更多