Seb*_*ter 80 asp.net connection-string web-config escaping
我的网络配置中有一个连接字符串:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" />
如您所见,密码中有一个引号(")(从其他部门给出.我无法更改此db用户密码).
如何在此连接字符串中转义引号?
顺便说一句:我已经尝试过" 在字符串中.那不起作用 - ado.net得到了一个ArgumenException:"初始化字符串的格式不符合从索引57开始的规范." 57是" 在我的连接字符串中.我也尝试将密码部分包含在' - 也没用.
还试过""和\" - 无法解析web.config.
谢谢你的解决方案:
我必须结合双引号的转义并将密码放在单引号中:
<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'" providerName="System.Data.SqlClient" />
Ode*_*ded 98
使用"而不是"逃避它.
web.config是一个XML文件,因此您应该使用XML转义.
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
看到这个论坛帖子.
更新:
"应该工作,但事实并非如此,你有没有尝试过.NET的其他字符串转义序列?\"和""?
更新2:
尝试使用connectionString的单引号:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
要么:
connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word'
更新3:
从MSDN(SqlConnection.ConnectionString属性):
要包含包含分号,单引号字符或双引号字符的值,该值必须用双引号括起来.如果值包含分号和双引号字符,则该值可以用单引号括起来.
所以:
connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass"word'"
问题不在于web.config,而在于连接字符串的格式.在连接字符串中,如果您具有"(键值对的)值,则需要将值括起来'.所以,虽然Password=somepass"word不起作用   ,但是Password='somepass"word'.
Ema*_*eco 50
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word"
由于web.config是XML,因此您需要转义五个特殊字符:
&- > & &符号,U + 0026
< - > < 左尖括号,小于号,U + 003C
> - > > 右尖括号,大于号,U + 003E
" - > " 引号,U + 0022
' - > ' 撇号,U + 0027  
我想,+不是问题.
| 归档时间: | 
 | 
| 查看次数: | 89578 次 | 
| 最近记录: |