【发布时间】:2015-10-04 02:49:41
【问题描述】:
在使用 Release Management 部署我的 WebApplication 后,我正在使用 PowerShell 脚本自动加密我的 web.config 的某些部分。在这个 PowerShell 脚本中,我使用 aspnet_regiis.exe 为我执行加密,如下所示:
$AspNetRegIisLocation = "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"
& $AspNetRegIisLocation -pef $configSection $configPath
$configSection 和 $configPath 定义正确,加密工作成功。可悲的是,它导致其中一个未加密部分的欧元符号从<sharedSettings currencyFormat="{0:€ #,##0}" /> 损坏到<sharedSettings currencyFormat="{0:€ #,##0}" />。
我已尝试将欧元符号转义为 &#8364;,并在我的 web.config 顶部将 encoding="utf-8" 设置为打开和关闭。这些解决方案都不起作用,除了在加密之前复制所有部分并在之后重新插入未加密部分之外,我能做些什么来防止这种情况再次发生,我有点茫然。
edit:当此部分也被加密时,网站上显示的文本也“损坏”,这意味着“稍后插入未加密部分”的解决方案无法解决问题出现在加密部分的情况.
【问题讨论】:
标签: asp.net powershell encryption web-config aspnet-regiis.exe