调试时如何加密连接字符串部分
How to encrypt connection strings section when debugging
我需要以下设置:
- 调试我的应用程序时,我希望通过
aspnet_regiis
加密我的 connectionStrings
配置部分
- 发布应用程序时,连接字符串应该是正常的、未加密的
<add>
元素,其中值仅包含一些占位符文本。
我的推理是:
- 将代码推送到远程仓库时,我不希望我的调试凭据以明文形式保存在那里(因此是加密部分)
- 将应用程序发布到 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
后有效。
我需要以下设置:
- 调试我的应用程序时,我希望通过
aspnet_regiis
加密我的 - 发布应用程序时,连接字符串应该是正常的、未加密的
<add>
元素,其中值仅包含一些占位符文本。
connectionStrings
配置部分
我的推理是:
- 将代码推送到远程仓库时,我不希望我的调试凭据以明文形式保存在那里(因此是加密部分)
- 将应用程序发布到 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
后有效。