如何在部署期间从命令行加密web.config连接字符串,指定加密提供程序?

时间:2015-09-14 14:10:33

标签: encryption msbuild msdeploy pubxml

我知道我可以这样做来加密已部署的网站中的连接字符串:

aspnet_regiis -pe connectionStrings

我还可以在部署之前对网站中的连接字符串进行加密:

aspnet_regiis -pef connectionStrings .\WebApplication1

我也知道如何制作自己的RSA密钥,将其安装在多台计算机上,并为该密钥设置加密提供程序,这样我就可以在一台计算机上加密并将其发布到另一台计算机上:

aspnet_regiis -pef connectionStrings .\WebApplication1 -prov MyProvider

我甚至可以通过在.pubxml文件(https://msdn.microsoft.com/en-us/library/ee942158%28v=vs.110%29.aspx#encrypt_webconfig)中添加一行来告诉MSBuild为我加密连接字符串。

但我真正需要做的是:

  1. 创建网站源代码并将其保存在源代码管理中,并解密连接字符串;
  2. 构建网站,使用web.debug.config或web.release.config转换web.config文件;
  3. 使用我的自定义加密提供程序加密转换后的web.config 中的连接字符串;
  4. 然后发布
  5. 全部来自自动化流程。注意:我不能首先加密连接字符串然后构建网站,因为我必须在加密之前转换web.config文件。我不想先发布网站,然后加密连接字符串,因为我不希望解密的连接字符串即使在短时间内也在Web服务器上。我想在部署过程中加密连接字符串,但是使用我自己的加密提供程序。我怎样才能做到这一点?它必须是可能的。可以接受msbuild命令,msdeploy命令和.pubxml文件设置的任意组合。

    我已经尝试过搜索如何执行此操作 - 我确实有 - 但我无法找到msbuild.exe / msdeploy.exe / * .pubxml ANYWHERE的全面参考。 (这是一个单独的问题。)

0 个答案:

没有答案