CN101237351B - 用于登录用户的在线离线状态控制方法 - Google Patents
用于登录用户的在线离线状态控制方法 Download PDFInfo
- Publication number
- CN101237351B CN101237351B CN2008100827292A CN200810082729A CN101237351B CN 101237351 B CN101237351 B CN 101237351B CN 2008100827292 A CN2008100827292 A CN 2008100827292A CN 200810082729 A CN200810082729 A CN 200810082729A CN 101237351 B CN101237351 B CN 101237351B
- Authority
- CN
- China
- Prior art keywords
- user
- online
- line
- web server
- database server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种用于登录用户的在线离线状态控制方法,用于包括一个数据库服务器、与其连接的一个或多个WEB服务器、以及一个或多个浏览器的应用***,一个或多个WEB服务器共享数据库服务器上的用户信息,其中,用户信息包括用户状态信息,方法包括以下步骤:与用户对应的WEB服务器检测用户的状态;以及WEB服务器根据检测到的状态更新所述数据库服务器上的用户状态信息。
Description
技术领域
本发明涉及通信领域,尤其涉及一种用于登录用户的在线离线状态控制方法。
背景技术
目前web上B/S架构的应用***越来越盛行(B/S架构的应用***是指浏览器/WEB服务模式的应用***,即所有的应用程序都部署在WEB服务端,而客户端只是简单的浏览器,如IE浏览器等,通过浏览器客户端发送请求到WEB服务端完成相应的业务处理),在此类的应用中从安全的角度出发,一般都会设计有用户登录控制等的处理流程。在这些WEB应用***中有时为配合应用***的需要需控制同一个用户不能同时在线,即在该用户没有退出或注销或超时前该用户是不能在另一个浏览器窗口再进行登录进入,因为有些***如果存在该种情况的话会造成数据的不一致性以及操作上的并发冲突等,这就需要对登录用户的状态进行控制才能达到该目的。
目前有些***做到了用户状态的控制,一般的做法是在WEB服务器的内存中记录用户的状态,而不是将用户状态记录在数据库中,这种做法在一个数据库服务器对应一个WEB服务的情况是足够了,因为其不需要同其他的WEB服务共享用户数据,但在多个WEB服务共享一个数据库服务器的用户数据,即用户状态共享的情况下处理就会略显不足,同时对用户状态的在线状态的解除不够全面。
本发明旨在解决用户的在线离线状态在尽可能多地情况下的得到控制和一个数据库服务器对应一个或多个WEB服务的情况下的用户状态的共享和控制。
发明内容
针对以上一个或多个问题,本发明提供了一种用于登录用户的在线离线状态控制方法,能够灵活地对用户状态进行共享和控制。
该方法用于包括一个数据库服务器、与其连接的一个或多个WEB服务器、以及一个或多个浏览器的应用***,一个或多个WEB服务器共享数据库服务器上的用户信息,其中,用户信息包括用户状态信息,方法包括:与用户对应的WEB服务器在需要的情况下检测通过浏览器进行操作的用户的状态,并根据检测到的状态更新数据库服务器上的用户状态信息。
在用户登录过程中,如果对应WEB服务器检测到用户的状态为在线,则提示用户已经在线或提示操作员和密码可能被盗用;如果对应WEB服务器检测到用户的状态为离线,则使用户正常登录并将数据库服务器中的用户状态信息修改为在线。
在检测到用户在预定的超时时间内没有在应用***中进行任何操作的情况下,对应WEB服务器将数据库服务器中的用户状态信息修改为离线。
在检测到用户主动离开应用***的情况下,对应WEB服务器将数据库服务器中的用户状态信息修改为离线。
在WEB服务器重新启动的情况下,将最近一次在WEB服务器上登录的用户对应的用户状态信息在数据库服务器中修改为离线。
在应用***出现异常或错误造成用户实际离线而数据库服务器中的用户状态信息为在线的情况下,对应WEB服务器将数据库服务器中的用户状态信息修改为离线。
上述的用户信息还包括以下至少之一:用户名称、用户登录的WEB服务器地址、用户的超时时间。
本发明能够正确控制一个登录用户的在线离线状态,以达到控制相同用户不能同时登录在线的目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是应用本发明的***结构图;
图2是应用本发明的用户登录处理流程图;
图3是本发明用户主动退出时用户的状态控制流程图;
图4是本发明用户关闭窗体退出时用户的状态控制流程图;
图5是本发明超时检测用户状态控制流程图;
图6是本发明人工清理用户状态的流程图;
图7是本发明人工重新设置用户超时时间的流程图;以及
图8是本发明WEB服务器重新启动后用户状态控制流程图。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
本发明基于B/S架构应用***,该***包括一个数据库服务器、与其连接的一个或多个WEB服务器、以及一个或多个浏览器,一个或多个WEB服务器共享数据库服务器上的用户信息,其中,用户信息包括用户状态信息,本发明的方法包括:与用户对应的WEB服务器在需要的情况下检测通过浏览器进行操作的用户的状态,并根据检测到的状态更新数据库服务器上的用户状态信息。
在用户登录的过程中对应WEB服务器检测用户状态,如果已经在线则提示用户已经在线,或提示操作员和密码可能被盗用,如果检测到该用户是离线,则正常进入***并修改数据库中该用户状态为在线。
用户在应用***设置的超时时间内没有对***进行任何操作,这时需要将该用户状态修改为离线。
当用户主动离开应用***,如主动注销或关闭浏览器等也需要将该用户的状态修改为离线。
当WEB服务重新启动时,需要将最近一次在在该WEB服务器上登录的用户在数据库中记录的状态修改为离线。
当应用***出现不可预知的各种异常或错误,造成用户的实际为离线而数据库中记录该用户为在线的情况,这时应用***提供一种清除用户状态为离线的机制。
应用本发明的方法进行用户状态控制的***结构如图1所示,包括以下部分:一个数据库服务器、若干个WEB服务器以及若干个浏览器。
在图1的***结构图中,多个WEB服务器共用一个数据库服务器,也就是说所有的用户信息是集中存放的,为各个WEB服务器所共享,这样一个用户的状态也会在各个WEB服务器中进行流转共享,WEB服务器主要是完成业务逻辑的处理等。
参考图2,应用本发明的用户登录流程如下:
步骤S200:用户登录处理:在用户登录页面输入用户名称和密码提交给WEB服务器。
步骤S210:用户信息验证处理,WEB服务器收到提交的用户名称和密码后进行验证,验证用户存在与否,密码是否正确。
步骤S220:判断验证是否通过,如果通过则继续,否则提示错误到登录页面。
步骤S230:判断用户是否已在线,如果在线则在登录页面提示在线,登录失败。若用户状态为离线,则转入步骤S240。
步骤S240:判断定时监控线程实例是否已存在,若不存在则转到步骤S250处理,若已存在转到步骤S260处理。
步骤S250:创建定时监控线程实例。
步骤S260:获取到创建的定时监控线程实例,并将登录用户信息,如:用户名称、用户登录的WEB服务器IP地址、用户的超时时间等放置到该线程创建的内存Hashtable表中。
步骤S270:同时将用户的名称、用户id,用户组id,权限值等信息放置在本次会话session中,供页面文件检测超时使用,并设置超时时间,流程结束。
参考图3,应用本发明的用户通过注销动作进行退出***处理流程,具体如下:
步骤S300:用户点击应用***的注销按钮,进行退出***操作。
步骤S310:提示是否确认退出。
步骤S320:如果确认退出,则转入步骤S330,否则返回。
步骤S330:从session会话中获取到用户一些信息,如用户名称、用户号id、用户组id等信息。
步骤S340:判断定时监控线程实例存在与否,如果存在则继续步骤S350,否则返回。
步骤S350:从监控线程所管理的内存在线Hashtable中查找该用户,如果找到则将其从在线Hashtable中删除。
步骤S360:将数据库中该用户的状态修改为离线,并将session会话设置为无效,流程结束。
参考图4,应用本发明的用户通过关闭窗体进行退出***处理流程如下:
步骤S400:用户点击窗体的关闭键进行退出***。
步骤S410:关闭窗体是触发了窗体的onbeforeunload()和onunload()事件。
步骤S420:在onunload()函数中判断是否是点击刷新按钮所触发,如果是则不是退出***,返回,如果不是则继续步骤S430。
步骤S430:从session会话中获取到用户一些信息,如用户名称、用户号id、用户组id等信息。
步骤S440:判断定时监控线程实例存在与否,如果存在则继续步骤S450,否则返回。
步骤S450:从监控线程所管理的内存在线Hashtable中查找该用户,如果找到则将其从在线Hashtable中删除。
步骤S460:将数据库中该用户的状态修改为离线,并将session会话设置为无效,流程结束。
参考图5,应用本发明的用户登录超时流程控制,具体如下:
步骤S500:在监控线程体中进入循环,线程休眠1分钟。
步骤S510:1分钟后从内存在线Hashtable中如果该表不为空则取出首条用户记录。
步骤S520:判断取出的用户的超时剩余时间是否小于等于0,若是则表明该用户在规定的超时时间内没有操作了,则转入步骤S530,否则转入步骤S540。
步骤S530:该用户已超时,并将其从在线内存Hashtable中删除该用户。
步骤S540:该用户还没超时,这时将该用户的超时剩余时间减少1分钟。
步骤S550:判断Hashtable中是否还有用户没处理完,若还有转入步骤S560,否则流程结束。
步骤S560:取出该用户信息,继续转入步骤S520。
参考图6,应用本发明的用户登录状态清理流程控制如下:
步骤S600:确认设置该用户状态为离线吗,如果是则转入步骤S610,否则返回。
步骤S610:进行数据库连接并将该用户状态设置为离线,流程结束。
参考图7,应用本发明的重新设置用户超时时间流程控制如下:
步骤S700:服务器程序获取到客户端用户请求,说明该用户在操作。
步骤S710:从session中获取该用户信息,如用户名称等。
步骤S720:根据用户名称从内存在线Hashtable中查找该用户。
步骤S730:判断是否找到,如果找到了则转入步骤S740,否则转入步骤S750。
步骤S740:重新设置Hashtable中该用户的超时剩余时间为规定的超时时间。
步骤S750:将该用户放入在线Hashtable中,并设置其超时剩余时间为规定的超时时间,流程结束。
参考图8,本发明WEB服务重新启动后用户状态控制流程如下:
步骤S800:获取监控线程实例。
步骤S810:判断该实例是否存在,若存在则表明WEB服务没有重新启动,则返回,若不存在则表明有可能是WEB服务重新启动了,则转入步骤S820(WEB服务重新启动则该实例一定是不存在了的)。
步骤S820:创建新的监控线程,线程中会创建内存在线用户的Hashtable表。
步骤S830:清理最近一次在该WEB服务器上登录的用户在数据库中记录的用户状态为离线状态,流程结束。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种用于登录用户的在线离线状态控制方法,其特征在于,用于包括一个数据库服务器、与其连接的一个或多个WEB服务器、以及一个或多个浏览器的应用***,所述一个或多个WEB服务器共享所述数据库服务器上的用户信息,其中,所述用户信息包括用户状态信息,所述用户状态信息包括用户的在线状态和离线状态;所述方法包括:与用户对应的WEB服务器在需要的情况下检测通过所述浏览器进行操作的所述用户的状态,并根据检测到的状态更新所述数据库服务器上的用户状态信息。
2.根据权利要求1所述的在线离线状态控制方法,其特征在于,在所述用户登录过程中,如果对应WEB服务器检测到所述用户的状态为在线,则提示用户已经在线或提示操作员和密码可能被盗用;如果对应WEB服务器检测到所述用户的状态为离线,则使所述用户正常登录并将所述数据库服务器中的用户状态信息修改为在线。
3.根据权利要求1所述的在线离线状态控制方法,其特征在于,在检测到所述用户在预定的超时时间内没有在所述应用***中进行任何操作的情况下,对应WEB服务器将所述数据库服务器中的用户状态信息修改为离线。
4.根据权利要求1所述的在线离线状态控制方法,其特征在于,在检测到所述用户主动离开所述应用***的情况下,对应WEB服务器将所述数据库服务器中的用户状态信息修改为离线。
5.根据权利要求1所述的在线离线状态控制方法,其特征在于,在所述WEB服务器重新启动的情况下,将最近一次在所述WEB服务器上登录的用户对应的用户状态信息在所述数据库服务器中修改为离线。
6.根据权利要求1所述的在线离线状态控制方法,其特征在于,在所述应用***出现异常或错误造成用户实际离线而所述数据库服务器中的用户状态信息为在线的情况下,对应WEB服务器将所述数据库服务器中的用户状态信息修改为离线。
7.根据权利要求1至6中任一项所述的在线离线状态控制方法,其特征在于,所述用户信息还包括以下至少之一:用户名称、用户登录的WEB服务器地址、用户的超时时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100827292A CN101237351B (zh) | 2008-02-27 | 2008-02-27 | 用于登录用户的在线离线状态控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100827292A CN101237351B (zh) | 2008-02-27 | 2008-02-27 | 用于登录用户的在线离线状态控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101237351A CN101237351A (zh) | 2008-08-06 |
CN101237351B true CN101237351B (zh) | 2010-12-08 |
Family
ID=39920721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100827292A Expired - Fee Related CN101237351B (zh) | 2008-02-27 | 2008-02-27 | 用于登录用户的在线离线状态控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101237351B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932162A (zh) * | 2011-08-11 | 2013-02-13 | 北京智诚唯科科技有限公司 | 管理网络应用中的个性化信息的方法和装置 |
CN102638418A (zh) * | 2012-03-31 | 2012-08-15 | 上海量明科技发展有限公司 | 一种即时通信中数据传输的方法、客户端和*** |
CN103118072B (zh) * | 2013-01-07 | 2016-03-30 | 阔地教育科技有限公司 | 一种数据库更新的方法及*** |
CN103118008B (zh) * | 2013-01-07 | 2015-08-19 | 苏州阔地网络科技有限公司 | 一种用户状态同步的方法及*** |
CN103118092B (zh) * | 2013-01-24 | 2015-07-15 | 中国联合网络通信集团有限公司 | 单次登录实现方法和装置 |
CN103116721B (zh) * | 2013-02-05 | 2015-09-02 | 中标软件有限公司 | 一种实现Koji认证的方法及其模块 |
CN105100113A (zh) * | 2015-08-26 | 2015-11-25 | 浪潮集团有限公司 | 一种基于云海os会话超时控制的方法 |
CN107786621B (zh) * | 2016-08-31 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 一种用户信息管理方法、访问处理方法及装置和*** |
CN106371976A (zh) * | 2016-08-31 | 2017-02-01 | 福建天晴数码有限公司 | 客户端及Web服务器监控线程的方法及其*** |
CN107770053B (zh) * | 2017-10-30 | 2020-07-17 | 商客通尚景科技江苏有限公司 | 一种离线状态下即时信息提示方法 |
CN109194658A (zh) * | 2018-09-11 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种检查操作请求的方法、装置和计算机可读存储介质 |
CN111988198B (zh) * | 2020-07-31 | 2022-02-25 | 中移(杭州)信息技术有限公司 | 在线用户人数统计方法、装置、电子设备及计算机介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536838A (zh) * | 2003-04-09 | 2004-10-13 | 华为技术有限公司 | 探测用户接入状态的方法 |
CN1540544A (zh) * | 2003-04-22 | 2004-10-27 | 联想(北京)有限公司 | 在线用户状态信息跟踪及控制方法 |
CN1571366A (zh) * | 2003-07-23 | 2005-01-26 | 华为技术有限公司 | 监测用户连接状态的方法 |
CN101056197A (zh) * | 2006-04-11 | 2007-10-17 | ***通信集团公司 | 信息家电的数据存储***及数据处理方法 |
-
2008
- 2008-02-27 CN CN2008100827292A patent/CN101237351B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536838A (zh) * | 2003-04-09 | 2004-10-13 | 华为技术有限公司 | 探测用户接入状态的方法 |
CN1540544A (zh) * | 2003-04-22 | 2004-10-27 | 联想(北京)有限公司 | 在线用户状态信息跟踪及控制方法 |
CN1571366A (zh) * | 2003-07-23 | 2005-01-26 | 华为技术有限公司 | 监测用户连接状态的方法 |
CN101056197A (zh) * | 2006-04-11 | 2007-10-17 | ***通信集团公司 | 信息家电的数据存储***及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101237351A (zh) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101237351B (zh) | 用于登录用户的在线离线状态控制方法 | |
US20170186117A1 (en) | License management apparatus, license management method, and license authentication program | |
US9491182B2 (en) | Methods and systems for secure internet access and services | |
US11526342B2 (en) | Cancel and rollback update stack requests | |
US8346910B2 (en) | Method and apparatus for managing an interactive network session | |
CN102426594B (zh) | 对数据库进行操作的方法和*** | |
US8863243B1 (en) | Location-based access control for portable electronic device | |
US7925015B2 (en) | Image forming system, computer-readable recording medium storing a setting change program, and setting change method | |
US7127722B2 (en) | Method and apparatus for avoiding multiple processing of the same IPMI system event | |
EP2849068A1 (en) | Distributed events in an access control system | |
CN103401883A (zh) | 单点登录方法及*** | |
CN102143226A (zh) | 一种超时控制的方法、装置及*** | |
KR20180096457A (ko) | 인증 관리 방법 및 시스템 | |
CN102291239B (zh) | 远程认证方法、***、代理组件和认证服务器 | |
CN101542435A (zh) | 管理非同时用户界面模块的增强型用户界面管理器及方法 | |
JP2008026945A (ja) | タイムアウト制御システム及びタイムアウト制御方法 | |
JP4275156B2 (ja) | 特定エリアネットワークアクセス制御システムおよび制御方法、ならびにそのプログラム | |
CN103491141A (zh) | 应用服务器和请求处理方法 | |
CN101984585A (zh) | 一种服务器集中管理的方法 | |
JP2006309355A (ja) | サービスシステム及び同システムのサーバ装置の動作方法 | |
KR20190067138A (ko) | 인증 관리 방법 및 시스템 | |
JP7475291B2 (ja) | チャットボット制御装置およびチャットボット制御方法 | |
JP2010170307A (ja) | ネットワーク制御システム、コンピュータープログラム | |
JP2008158808A (ja) | タイムアウト回避プログラム及びタイムアウトの回避方法 | |
US20180373603A1 (en) | Web Application System and Database Utilization Method Therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101208 Termination date: 20190227 |