ASP.NET讀取ASP設置的Cookie

    這類問題通常在整合或二次開發ASP網站時遇到。按常理來說,瀏覽器的Cookie存放在客戶端,實際上與服務端使用什麼語言無關,但我們在實際操作過程中,總會遇到一些意想不到的問題。

    1. 當ASP寫的Cookie的Key中帶有下劃線,例如我們在ASP中這樣設置Cookie:

         Response.Cookies("Admin_User")="管理員";

    那麼在aspx.cs的頁面,使用Request.Cookie["Admin_User"]  ,是怎麼都讀不到的。在這裏我寫了一個循環,將當前cookie的所有Name與Value都輸出了一遍,發現下劃線“_”已經轉義成了“%5F”,而使用Request.Cookie["Admin%5FUser"]  就可以得到我們想要的“管理員”了。

    遇到類似問題的朋友,不妨做這樣的嘗試。

    2. 還需要注意中文亂碼的問題,不管我將字符集設置爲GB2312,還是GBK,甚至是UTF-8都沒法獲得正確的中文,實際上問題出在ASP那邊,ASP頁面顯示簡體中文時,需要設置“代碼頁”(它可讀寫,整型數,用於表示顯示頁內容的字符集,簡體中文爲936,日文爲932,ANSI爲1252)。

   string cookie = System.Web.HttpUtility.UrlDecode(Request.Cookies["Admin%5FUser"].Value, System.Text.Encoding.GetEncoding(936));

    使用以上的方式,便可以獲取包含中文的Cookie了。

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章