IE6下Ajax请求后台页面获取的SessionId和前台不一样

mizuho_2006 2012-11-16 08:15:46
做一个退出登录的超链接

当点击时,向后台发出ajax请求,在后台清除登录时的SESSION
context.Session.Remove("username");

然后再用跳转语句刷新页面(逐个去隐藏和修改页面上的信息太麻烦了)
window.location.href = "index.aspx";

在页面初始化时判断如果Session里的username值为null的话就显示“登录系统”
如果有值就显示“退出系统”

测试在IE9和Firefox下都没问题
但是IE6,IE7下Session中一直有值。菜单上一直显示“退出系统”。
设置断点看了下context.Session.Remove("username");确实执行了
但还是清除不掉登录信息。。。在PageLoad里判断Session的时候,还是有值

后来发现在IE6下,登录时的SessionID和我在后台清空的SessionId不是一个。。所以尽管后台清空了Session,登录时的会话还在。。

而在IE9或火狐下都是一个SessionId。。

为什么会出现这种情况啊?

...全文
259 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mizuho_2006 2012-11-16
  • 打赏
  • 举报
回复
我把配置文件里<SessionState> 的cookieless属性值改为true 就正常了,但是浏览器url变的很长,有没有办法 不改变url又能保证session不丢失呢? 我修改SessionState的mode属性值为StateServer,然后开启状态服务,但是仍然不管用。
  • 打赏
  • 举报
回复
没碰到过这种情况。。 在remove session前输出sessionid提供给ajax,ajax请求完毕后输出返回的内容和document.cookie,看cookie中的ASPSESSIONIDCSBQCQQB=内容这个是否一致

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧