主要是修改在线字段isOnLine 里面的值,
判断如果页面在10分钟之内没有刷新,就把update 修改isOnLine 字段里的值现在的问题就是.net怎么计算时间间隔用“ DateTime.Now-Rs["LoginDate"]”
没有用 ,求各位大神指教....net时间间隔
判断如果页面在10分钟之内没有刷新,就把update 修改isOnLine 字段里的值现在的问题就是.net怎么计算时间间隔用“ DateTime.Now-Rs["LoginDate"]”
没有用 ,求各位大神指教....net时间间隔
解决方案 »
- 给IIS的来宾账户设置了可写,会有什么后果?
- 发奖金啦。。。。快
- 关于web用户控件的问题?
- 获取网页编码问题和防止出现999错误
- 关于TreeView动态绑定数据,点击节点,子节点自动展开的问题
- 我的系统是win2003企业版,安装了.net 2.0,启动了服务aspnet_state服务
- 删除GridView的记录问题
- 别人请求了我的页面地址,如何给对方返回值,Response.Write后面会跟一大段HTML东西,还有其它的办法么
- 编译时没有问题,浏览时报的错误CS1595: 已在多处定义IntelligentOffice.Desktop._Default
- 客户端运行的ASP如何获得客户在表单填写的东西?
- js怎么判断多行文本框输入的手机号有几个?
- 有个问题很郁闷
docutment.getElementById('xx').click()然后计算时间间隔什么的。
session丢失了 就表明他至少十分钟没有做操作了 自动掉线了
确实,只要了解下session的存储,可以用数据库存储session,加上一个作业就基本上可以实现了。在服务端也可以知道那些用户在线,但是有一点就是,不能保证100%准确。
这是完全通过js来处理的,用settimeout每隔一段时间捕获鼠标的位置,然后用js的cookies方法存储到cookies里面,然后比对,如果和上次的记录间隔超过10分钟都是一样就最对应处理(黑框全屏遮罩或者注销登录)
那像你说的 如果用户刷新了页面 但是鼠标一直没动十分钟后,刷了好多次 鼠标都没动 也就是存cookie的坐标也没变
那你是判断他掉线还是在线呢个人觉得最实用最简单的就是session来控制
如果十分钟之后再来操作 就来提醒操作超时
在页面的每次操作的时候,都去判断这个值是不是为null,为null说明超时了,
TimeSpan ts = dTimeEnd - dTimeServer
前段时间也纠结过楼主的问题。。自己琢磨的解决方法是:
设置 Session 过期时间
并在 全局配置文件 中配置 SessionEnd 方法。测试的时候关闭浏览器是可以的断电、死机、断网、结束进程、这些没测试过
session时间也可
每次按需求分析的用活动,更新XML最后用户时间
建立一个Windows Services,写个每10分钟的计时器对XML访问,最后活动时间与Windows Services访问时间大于10删除XML该用户记录,同时更新数据库信息。
如果你觉得可能用户在线量比较大,比如10W+,你可以按需求把XML分解成多个文件,在Windows Services里动态建立多个计时器,来访问
另外如果用这样的方法,你需要考虑一下页面是不是有文本编辑这样的耗时的功能,如果有的话,需要JS检测键盘事件,如果中间按下了键盘按键,JS重新计时。
存储在服务器端的session不如运行在客户端随便都能改的js安全
//WebConfig
<!--在 system.web 节点中设置-->
<system.web>
<!--
设置Session 保存的模式和过期时间
-->
<sessionState mode="InProc" timeout="600"></sessionState>
<system.web>//添加全局配置文件 Global.asax
protected void Session_End(object sender, EventArgs e)
{
//此处写 Session 丢失要执行的 Code
// string loginName = Session["LoginName"].ToString();
// UserBll.UpdateUserLoginStatus(loginName);
}
可能也会有 BUG 没有发现,大家有好建议还请指教,我也想做的更好一点。。
另外,JS 监听浏览器关闭事件貌似对浏览器的兼容很不好,而且在强制结束进程的时候好像也不能被触发。。
setTimeout('window.close();', 10000);
}
</script>
因为 Session 机制的原因,会导致 Session 很容易丢失。比如说 IIS 异常重启,浏览器关闭,服务器端修改了配置文件等等,都会导致 Session 丢失。。所以 100% 准确是不可能的。
以上纯属个人观点,不喜勿喷。。
上面都说是数据库存session了,你说的这些全都不会出现
2.在页面加载时,做个定时器,每10分钟判断moustime 和当前时间的间隔是否大于10分钟。若为true,说明10分钟内鼠标未移动,进行ajax操作,向服务器发送用户id等其他东西,服务器进行连接注销。并给用户弹窗断开连接。
LZ 貌似没说过 Session 存在数据库中吧只是根据Session 来更改User 的LoginStatus、、、