asp 读cookie 下划线 丢失

昨天有一个用户反应,登录后还是会显示:请登录后再使用。

我一查,原来有一个cookie设置后,无法正常读取。

整个情况是这样:

登录的时候,设置2个 cookie:

user_name

logon_time

但在登录后,读取cookie(user_name)的值时,返回为空,但读取cookie(logon_time)的时候却能正常的读取值。

通过远程协助,我在客户的ie8浏览器地址栏输入: javascript:alert(document.cookie); 能显示这两个cookie的名称和值。

只是 user_name 变成了 user%5Fname, logon_time 变成了 logon%5Ftime

也就是说,下划线(_)进行了相应的转码。

但我感到奇怪的是,为什么 logon_time也有下划线,为什么又可以正常的读取到值,为什么user_name却不行。

同时在我的ie8上测试,一切都正常,都可以读取到相应的cookie的值。

最后实在没办法,就把user_name 改为 userName,然后一切都正常了。

看来以后设置cookie还是不要加下划线了,免得引起烦恼。

-----------------------------------------------------------------

早上在网上搜索一下,发现这么一篇: http://blog.csdn.net/lisliefor/article/details/5314123

说是通过 user%5Fname来读取,但我试了也没用。

2013-07-18

原文地址:https://www.cnblogs.com/personnel/p/4584900.html