App.config/Web.config 中特殊字符的處理


我們知道在應用程序中嵌入連接字符串可能導致安全漏洞和維護問題。使用 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特殊轉義字符列表

最常用的字符實體

顯示

說明

實體名稱

實體編號

 

空格

&nbsp;

&#160;

<

小於

&lt;

&#60;

>

大於

&gt;

&#62;

&

&符號

&amp;

&#38;

"

雙引號

&quot;

&#34;

©

版權

&copy;

&#169;

®

已注冊商標

&reg;

&#174;

商標(美國)

&#8482;

×

乘號

&times;

&#215;

÷

除號

&divide;

&#247;

所以只要把"&"進行轉義就可以了,將PassWord改為

PassWord=123&amp;456"

成功通過編譯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM