日期:2014-05-18  浏览次数:20474 次

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)要去掉。