调试时如何加密连接字符串部分

How to encrypt connection strings section when debugging

我需要以下设置:

我的推理是:

  1. 将代码推送到远程仓库时,我不希望我的调试凭据以明文形式保存在那里(因此是加密部分)
  2. 将应用程序发布到 Azure 时,我可以覆盖来自 Azure 门户的占位符、未加密的连接字符串

是否可以使用配置转换?

我能找到的唯一例子是转换单个连接字符串元素,但我需要整个部分根据 debug/release 设置看起来不同。

感谢任何建议

我在 this useful post 的帮助下做到了这一点:

<connectionStrings xdt:Transform="RemoveAttributes(configProtectionProvider)">
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
        xmlns="http://www.w3.org/2001/04/xmlenc#" xdt:Transform="Remove" xdt:Locator="Match(Type)" />

    <add xdt:Transform="Insert" name="CDSsvcUsername" connectionString="username"/>
    <add xdt:Transform="Insert" name="CDSsvcPassword" connectionString="password"/>
</connectionStrings>

所以我在整个 Encrypted 元素上调用 xdt:Transform="Remove" 并删除 connectionStrings 上的 configProtectionProvider 属性。

这仅在删除转换中指定 xdt:Locator 后有效。