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

B/S系统能不能实现空闲时间设置呢?
现在我使用asp.net(C#)做一个B/S系统,其中系统设置的一项是空闲时间设置,就是类似xp系统一样,比如在15分钟内没有动电脑然后再去操作这个系统就弹出一个对话框要求你输入用户名和密码.大家能否给点思路?我上网搜也没有搜到什么资料。

------解决方案--------------------
设置session超时
------解决方案--------------------
session超时

------解决方案--------------------
if(Session[ "name "]==null){你超时了}
------解决方案--------------------
这个很难控制的

用server push吧,思路:当用户打开页面后,跑一个线程(用一个隐藏IFrame页)一直去比较最近操作(有操作要更新时间的)时间,如果大于15分钟没有动作就弹框

一个复杂而没有任何实用价值的逻辑~~~~

用session验证,只是没有提示,超时一样不可以操作的!
------解决方案--------------------
楼上正确, 用session验证,只是没有提示,超时一样不可以操作的!

------解决方案--------------------
还有一个方法,用ajax请求,你可以用一个全局变量记录下用户名和最后请求时间,可以用javascript每隔几秒就向服务器发请求,发现超时,就弹框,而且有操作时要更新那个全局变量(其它全局变量也行,最好用session,这个session是有用户访问期间是不会过期的,因为有javascript不断发请求,而你在session中记录最后更新时间而不是检察session是否过期,如果你用其它的全局变量维护会非常麻烦,你要做到把已经退出的用户从那个里面删除就够你烦的了,而session当没有用户关掉IE后一段时间会过期掉)
------解决方案--------------------
用IS控制也行,用Session控制也行.
------解决方案--------------------
session过时
------解决方案--------------------
楼主要明白几点
1、对于你这个问题,是WEB比较难解决的一个,因为WEB不像C/S,可以保持客户端和服务端的长连接,你可以及时通知客户端..WEB必须发出请求服务端才会给出回应,想做到长连接,就要用server push(你可以留意下Response.Flush()的用法),就是,当用户连上服务端就挂一个长期不断的连接进行线程处理。。。
2、就算是C/S程序,你也是要用一个变量来记录用户更新时间的,要不你也没有办法进行闲置15分钟的判断的

对于:用session验证,只是没有提示,超时一样不可以操作的!
你要实现什么?当用户的session过期了,他再进行一个操作,那么就是向服务端发送请求了,你完全可以在这个时候进行session验证,如果已经过期,那么跳转到登陆页面!

------解决方案--------------------
有一个方法,用ajax请求,你可以用一个全局变量记录下用户名和最后请求时间,可以用javascript每隔几秒就向服务器发请求,发现超时,就弹框,而且有操作时要更新那个全局变量(其它全局变量也行,最好用session,这个session是有用户访问期间是不会过期