求教:关于session验证问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 08:06:06
最近使用C#(VS2008,framework3.0环境)开发了一套办公自动化系统,现在出现如下问题:
用户登陆系统后,浏览器地址栏自动加了一串类似加密的字符串.类似

(XS(1)sdfsdsf55),即如下:http://yourname.com/(XS(1)sdfsdsf55)/default.aspx
这样带来了一个严重的后果:
1.如果A用户将此地址发送给B,C用户,B点击链接即可直接进入系统主页面.且系统显示当前用户为A用户
2.B用户如果在系统中登出后使用自己的帐号登陆,如果C再点击此链接则也是直接进入系统,且用户显示是B用户
3.如果B进入系统未进行操作,则C用户进入系统后显示是A用户.
4.如果B用户进入系统点击了登出但未登录系统,则C点击链接时显示登陆超时,系统自动跳转至登录页面.

但是我的系统每个页面都会检查session是否为空,因此现在我们认为是此网址可能包含了session信息.

但是很奇怪的是此信息与客户端无关,即只要有人用此网址登录系统 且保持登陆状态则任何人使用此地址均可直接进入系统,那么此信息有可能是保存在服务器上的.并且此信息会保存最后一个使用此地址登陆者的信息.

水平有限,到现在无法查找到原因,请遇到过这种问题的热心人帮忙解释一下并提供解决方案!

分不够可继续加

检查一下你的web.config,是不是在 <sessionState 里面设置 cookieless 为 true或UseUri了,调整一下(通常不需要设置)。

如果那样的话,你就使用
Default.aspx?sessionid=@$932kFR934f
之类的,判断sessionid!知道了吗?用过request传递加密会话,你看看从qq上点击qq空间如何自动登录到qq空间的,通过判断实现这些!

用Post方法提交不让地址栏显示sessionID,session默认为20分钟过期!你的问题就是同一个Session!登出时记得把session中的用户信息删了!OK!

如果(XS(1)sdfsdsf55)这个不是SESSIONID的话(估计也不是),就是你程序中操作用户的类中有用到静态变量来存用户信息,检查下

网页的不是很清楚,不过检查下有没有appliction级别的东西??