我們知道在應用程序中嵌入連接字符串可能導致安全漏洞和維護問題。使用 Ildasm.exe(MSIL 反匯編程序) 工具可以查看編譯到應用程序源代碼中的未加密連接字符串。此外,如果連接字符串發生更改,則必須重新編譯應用程序。因此,強烈建議將連接字符串存儲在應用程序配置文件中。
最近在學習SQL Server時遇到連接字符串包含特殊字符出現編譯錯誤的問題。
App.config:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <startup> 4 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 5 </startup> 6 <connectionStrings> 7 <add name="DBconnStr" connectionString="Data Source=.;Initial Catalog=MyTest;User ID=sa;PassWord=123&456"/> 8 </connectionStrings> 9 </configuration>
由於數據庫連接的密碼中含有特殊字符"&",編譯時出現如下如下錯誤信息:
顯然編譯器不認識"&456",怎么解決呢,總不能更換密碼吧?
事實上App.config是xml文件,在xml文件中特殊字符要進行HTML轉義。
HTML中<,>,&等有特殊含義(<,>,用於鏈接簽,&用於轉義),不能直接使用。這些符號是不顯示在我們最終看到的網頁里的,那如果我們希望在網頁中顯示這些符號,就要用到HTML轉義字符串(Escape Sequence)了
HTML特殊轉義字符列表
最常用的字符實體
顯示 |
說明 |
實體名稱 |
實體編號 |
空格 |
|
  |
|
< |
小於 |
< |
< |
> |
大於 |
> |
> |
& |
&符號 |
& |
& |
" |
雙引號 |
" |
" |
© |
版權 |
© |
© |
® |
已注冊商標 |
® |
® |
™ |
商標(美國) |
™ |
™ |
× |
乘號 |
× |
× |
÷ |
除號 |
÷ |
÷ |
所以只要把"&"進行轉義就可以了,將PassWord改為
PassWord=123&456"
成功通過編譯。