Cookie的严重问题!?
最进在用Cookie的时候总是不顺,出现了一个实在让人不理解的问题:
当给Cookies赋值并设置过期时间后后再访问Cookie,没什么问题,包括访问他的键,和Cookie的数量都没问题。如下面的代码。
Response.Cookies[ "userInfo "][ "userName "] = "mike ";
Response.Cookies[ "userInfo "][ "lastVisit "] = DateTime.Now.ToString();
Response.Cookies[ "userInfo "].Expires = DateTime.Now.AddDays(1);
Response.Cookies.Count;
string [] keys = Response.Cookies.AllKeys;
foreach(string key in keys )
{
Response.Write(key + " <br> ");
}
可是当指定的Cookie中已经有值了的时候,就是在第一次执行页面时发放了Cookie,当第二在执行这个页面时不会再发放Cookie值,而是访问第一次执行页面时所发放的Cookie的值。此时访问
Response.Cookies.Count;
Response.Cookies.AllKeys;
会出现问题,Count为0 ,AllKeys数组为空!而打开Cookie文件看,里面确实有值,而且是第一次执行页面是所发放的值。这里不知道为什么Count为0 ,AllKeys数组为空!?迷惑!
------解决方案-------------------- "第二在执行 "是在新的页面中吗?是不是放到了postback或者callback中限制了啊
------解决方案--------------------同意一楼,你可能是第二次没有运行到输出cookie
------解决方案--------------------IF(!Ispostback)要去掉。