1

我在我的电脑上跑过

aspnet_regiis -pe "connectionStrings" -app "/MyApp" -site "MySite"

它在 web config 中创建了一个加密的 <connectionStrings> xml 元素

现在,每次我将我的应用程序部署到新环境时,
web.config 都会被“web 转换”为新的 web.config,然后进行部署。
我了解每台机器的加密都是唯一的。我试图复制加密的值,但它没有用。

  1. 我是否需要在每次部署时以及在每台机器上运行“aspnet_regiis -pe...”命令?
    有更好的做法吗?
  2. 我的机器在加密中使用的计算机中的唯一密钥是什么/在哪里?
    我需要保护它以防潜在的攻击吗?
    谢谢。
4

1 回答 1

1

1) 是的,我建议将未加密的 web.config 文件部署到新服务器,然后在“部署过程”中运行您的加密命令。

2)操作系统和框架应该已经为您保护了默认加密密钥。您可以在以下链接中了解有关所有这些内部结构的更多信息:

http://msdn.microsoft.com/en-us/library/dtkwfdky%28v=vs.100%29.aspx

“本演练使用在 Machine.config 文件中指定并命名为“RsaProtectedConfigurationProvider”的默认 RsaProtectedConfigurationProvider 提供程序。默认 RsaProtectedConfigurationProvider 提供程序使用的 RSA 密钥容器名为“NetFrameworkConfigurationKey”。

请记住,用于加密/解密 web.config 文件的密钥不是机器密钥(它是单独的)。但是,如果您要部署到网络场,您还需要确保机器密钥是一致的,否则您会看到出现奇怪的错误。

于 2013-01-30T16:31:04.143 回答