ASP.NET读取ASP设置的Cookie

来源:互联网 发布:toastr.js 编辑:程序博客网 时间:2024/05/01 20:16
这类问题通常在整合或二次开发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了。

 

 

 

 

 

 

原创粉丝点击