加密服务器上 web.config 的 connectionStrings 部分,然后将此加密部分添加到 web.[CONFIGURATION_FOR_SERVER].config 转换文件。密钥是第一行,它表示用这个新的加密值替换原始 web.config 的 connectionStrings 部分。对于要发布到的每个服务器,您都需要一个新的转换文件。Visual Studio 将引发警告(不是错误),即
Warning 15 The element 'connectionStrings' has invalid child element 'EncryptedData' in namespace 'http://www.w3.org/2001/04/xmlenc#'. List of possible elements expected: 'add, remove, clear'. C:\DevTFS\YourProject\Web.Stage.config 14 6 YourProject
关于这个转换文件的格式——我还没有找到正确的语法来解决这个问题,所以我愿意接受建议,但它仍然有效,所以我很高兴。关于此的完整博客条目:http ://randomdotnetnuggets.blogspot.com.au/2013/05/publishing-encrypted-connection-strings.html
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider" xdt:Transform="Replace">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>t8p7aOZTjMo...zE6FAAI=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>Vy1TZWY8....ic+Qg6T7U</CipherValue>
</CipherData>
</EncryptedData>