2010-02-21 72 views
3

我需要使用框架3.5中內置的 KeyValueConfigurationElement.Save方法在web.config中的密鑰中存儲轉義的html字符串。但是當我嘗試這樣做時,它會一直逃避我的符號。更新web.config中的值

代碼看起來是這樣的:

strHTML = DecodeFTBInput(FTB1.Text) 

FTB1.Text是HTML字符串,像這樣:<b><font color="#000000">Testing</font></b>

DecodeFTPInput使用String.Replace()方法改變<和>&lt;&gt;和「到&quot;

鑑於上述字符串和函數,假設strHTML現在包含以下內容:

&lt;b&gt;&lt;font color=&quot;#000000&quot;&gt;Testing&lt;/font&gt;&lt;/b&gt; 

當然,我可以手動編輯web.config來存儲正確的值,但我需要經過身份驗證的管理員用戶才能夠自行更改html。

問題是,當我嘗試將此字符串保存到其在web.config中的密鑰中時,它將所有&符號 作爲&amp;轉義,從而導致字符串遺失。

我該如何解決這個問題?

回答

1

web.config是一個XML文件,所以當它使用HTML encoding,與&lt;&gt;&amp;,等等,除了更換<>&字符寫入有值在.NET Framework店字符串。

如果您希望web.config文件中的HTML可編輯,您需要停止使用HTML編碼字符串的DecodeFTPInput方法。否則,你會被HTML編碼兩次,這不是你想要的結果!

+0

我明白你的意思了,謝謝你的回答。我只是Base64編碼的東西,因爲我認爲只使用XML安全的字符。如果這不是快樂,我會MD5哈希混蛋,哈哈。在將值賦給asp:literal之前,我可以重新轉換。 – 2010-02-21 06:58:00

+0

derp,md5是單向的,但重點仍然存在,如果必須的話,我會把它分解成整數。 – 2010-02-21 07:01:56