很奇怪的问题,等待高手来解决。关于IIS,关于SESSIONID,关于验证码

我是老姚 2012-09-19 09:12:48
现在遇到一个很奇怪的问题,验证码有时候会始终无法通过。不是出现在固定的浏览器,也不是出现在固定的计算机,不知道什么时候会出现。
经过跟踪之后发现出现问题的时候浏览器每次请求都会得到一个新的SESSIONID,看似好像是sessionid无法保存,这种现象还没有发现有什么规律。
高手们有没有遇到过这种情况
===============================================
服务器环境是win2003+sqlserver+IIS6+.NET4.0
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是老姚 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
session是按照客户端地址存的,也就是同一个地址的客户端使用的是同一个session,即使在不同浏览器打开,但实际用的是同一个值,
从这上面考虑,是不是session被同一地址的其他页面发出的请求修改了
比如一个页面打开网站,获取到一个随机的验证码,保存在session中然后发给浏览器;
然后同一个地址的另一个页面又打开网站,服务器接收到请求后又生成一个验证码,保存在session中
……
[/Quote]
都是同一个页面,页面里只有一个验证码,还是验证码的验证请求(AJAX)。其它就没有了。
加载页面后验证码图片的请求会得到一个的SESSIONID
等于验证码的验证请求发送时请求信息中没有sessionid,请求后返回的SESSIONID又不一样。
随后再发验证码验证请求返回的SESSIONID还是不一样。
未知数 2012-09-19
  • 打赏
  • 举报
回复
session是按照客户端地址存的,也就是同一个地址的客户端使用的是同一个session,即使在不同浏览器打开,但实际用的是同一个值,
从这上面考虑,是不是session被同一地址的其他页面发出的请求修改了
比如一个页面打开网站,获取到一个随机的验证码,保存在session中然后发给浏览器;
然后同一个地址的另一个页面又打开网站,服务器接收到请求后又生成一个验证码,保存在session中
那么,因为是同一个客户端,所以这两个session实际是同一个,前者就被覆盖了,所以前一个页面输入验证码提交到服务器验证时就和session中保存的不一样了
我是老姚 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
服务器事件是会刷新页面的,所有页面代码(包括html,css,js)会重新加载,用js保存的值自然会丢失;
不是浏览器不能保存值,只是你对web了解还不深入罢了
请详细了解页面过程
[/Quote]
不是所有的用户都有这种情况,只有极少数,但出现问题的时候浏览器每次请求返回的sessionid都不同
而通过监测,服务器的session还一直存在。
未知数 2012-09-19
  • 打赏
  • 举报
回复
服务器事件是会刷新页面的,所有页面代码(包括html,css,js)会重新加载,用js保存的值自然会丢失;
不是浏览器不能保存值,只是你对web了解还不深入罢了
请详细了解页面过程
我是老姚 2012-09-19
  • 打赏
  • 举报
回复
补充一下,应该不是Session丢失的问题,而是浏览器每一次发送的请求中根本就没有SessionID。

而服务器每次返回的头信息中都有 SessionID。

感觉浏览器接收到SessionID后根本就没存下来。

未知数 2012-09-19
  • 打赏
  • 举报
回复
不用说应该是代码逻辑的问题

还是上代码吧
我是老姚 2012-09-19
  • 打赏
  • 举报
回复
没人么

8,327

社区成员

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

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