我知道我可以这样做来加密已部署的网站中的连接字符串:
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为我加密连接字符串。
但我真正需要做的是:
全部来自自动化流程。注意:我不能首先加密连接字符串然后构建网站,因为我必须在加密之前转换web.config文件。我不想先发布网站,然后加密连接字符串,因为我不希望解密的连接字符串即使在短时间内也在Web服务器上。我想在部署过程中加密连接字符串,但是使用我自己的加密提供程序。我怎样才能做到这一点?它必须是可能的。可以接受msbuild命令,msdeploy命令和.pubxml文件设置的任意组合。
我已经尝试过搜索如何执行此操作 - 我确实有 - 但我无法找到msbuild.exe / msdeploy.exe / * .pubxml ANYWHERE的全面参考。 (这是一个单独的问题。)