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

Encryption 如何在部署期间从命令行加密web.config连接字符串,并指定加密提供程序?,encryption,msbuild,msdeploy,pubxml,Encryption,Msbuild,Msdeploy,Pubxml,我知道我可以这样做来加密已部署的网站中的连接字符串: aspnet_regiis -pe connectionStrings 通过执行以下操作,我还可以在部署网站之前加密网站中的连接字符串: aspnet_regiis -pef connectionStrings .\WebApplication1 我还知道如何制作自己的RSA密钥,在多台计算机上安装该密钥,并为该密钥设置加密提供程序,这样我就可以在一台计算机上加密该密钥,然后在另一台计算机上发布该密钥: aspnet_regiis -pe

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

aspnet_regiis -pe connectionStrings
通过执行以下操作,我还可以在部署网站之前加密网站中的连接字符串:

aspnet_regiis -pef connectionStrings .\WebApplication1
我还知道如何制作自己的RSA密钥,在多台计算机上安装该密钥,并为该密钥设置加密提供程序,这样我就可以在一台计算机上加密该密钥,然后在另一台计算机上发布该密钥:

aspnet_regiis -pef connectionStrings .\WebApplication1 -prov MyProvider
我甚至可以通过在.pubxml文件()中添加一行来告诉MSBuild在部署期间为我加密连接字符串

但我真正需要做的是:

  • 创建网站源代码并将其保存在源代码管理中,并解密连接字符串
  • 构建网站,使用web.debug.config或web.release.config转换web.config文件
  • 使用自定义加密提供程序加密转换后的web.config中的连接字符串
  • 然后发表
  • 所有这些都来自自动化流程。注意:我不能先加密连接字符串,然后再构建网站,因为我必须在加密web.config文件之前对其进行转换。我不想先发布网站,然后对连接字符串进行加密,因为我不希望解密后的连接字符串在web服务器上,哪怕只是很短的一段时间。我想在部署过程中加密连接字符串,但要使用我自己的加密提供程序。我该怎么做?这一定是可能的。msbuild命令、msdeploy命令和.pubxml文件设置的任何组合都是可以接受的

    我已经尝试过搜索如何实现这一点——我确实找到了——但在任何地方都找不到msbuild.exe/msdeploy.exe/*.pubxml的全面参考。(这是另一个问题。)