法律状态公告日
法律状态信息
法律状态
2014-09-24
授权
授权
2012-12-12
实质审查的生效 IPC(主分类):H04L29/06 申请日:20120705
实质审查的生效
2012-10-17
公开
公开
技术领域
本发明涉及一种限制用户多地点同时登录的方法,属于信息技术领域。
背景技术
在信息管理系统软件中,为了保障整个业务流程在管理上是闭环的,这就要求,每个环节都是可控的,在业务处理的每个环节都是由特定的用户来负责完成的,为了保障业务的一致性,唯一性和不可抵赖性,软件系统均要求在系统层面对用户的登录行为进行控制,限制用户在同一时刻只能在一个地点进行登录,主要有两个好处:一方面在应用层面避免了业务处理的冲突,在一定程度上减轻了数据库方面的压力;另一方面可以尽早的发现用户身份被盗用,提高了系统的安全等级。
在限制用户登录过程中需要考虑客户端正常、非正常注销以及系统崩溃等多种复杂情况,在已有的解决方案中,大都选用微软的主域控制器加上LimitLogon工具来完成类似的限制,但该方法在技术实现上较为复杂,并且需要额外配置域控制器来完成,额外增加了项目的成本与开发周期,特别对于中小软件项目该解决方案很难适用,迫切的需要一种简单易用的方法来解决限制用户多地点同时登录的难题。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种限制用户多地点同时登录的方法,本方法不依赖于任何基于注销触发事件的方式,能够有效的对客户登录行为进行限制。
按照本发明提供的技术方案,所述的限制用户多地点同时登录的方法是:根据用户登录所在计算机的硬件信息生成一个登录凭证,并设置所述凭证的有效期,然后将凭证传递到服务器端,客户端每隔一定周期自动的进行凭证的续期,服务器端依据凭证及有效期对登录进行限制控制,若凭证在有效期内则允许用户登录,否则拒绝用户登录。
所述凭证是系统判断特定用户登录的唯一证据,所述凭证的属性信息包括:用户标识、登录所在计算机MAC地址、精确到毫秒的登录时间、有效期,并将属性信息采用对称加密算法进行加密后传递给服务器端。
所述凭证中的登录时间LoginTime有两个用途,一是用于和计算机MAC地址一起构建对登录地点的唯一描述;二是由服务器端的登录限制服务控制整个用户的登录生命周期;凭证中的有效期TimeOut用于记录还有多长时间就可以认为该用户已经注销、退出或异常关闭。
进一步的,所述的限制用户多地点同时登录的方法具体包括以下步骤:
(1)查询对应用户的登录凭证记录表,并对该用户的该条凭证进行数据库级加锁,防止此时用户在其它地点并发登录,在此基础上读取出用户的最近一次历史登录凭证,记为:Credential_History[UserId,SiteId,LoginTime,TimeOut];UserId,SiteId,LoginTime,TimeOut分别表示所述用户标识、登录所在计算机MAC地址、登录时间、有效期;
(2)判断当前登录凭证中的计算机MAC地址Credential_Current.SiteId是否等于最近一次历史登录凭证中的计算机MAC地址Credential_History.SiteId,若等于说明是在本机进行再次登录,则直接允许登录,并将当前登录凭证Credential_Current记录到登录凭证记录表中,并将允许登录信息返回到客户端中;
(3)若当前登录凭证中的计算机MAC地址Credential_Current.SiteId不等于最近一次历史登录凭证中的计算机MAC地址Credential_History.SiteId则说明此次登录的地点同上次不同,转到步骤4进行继续判断;
(4)判断Credential_Current.LoginTime - Credential_History.LoginTime是否大于Credential_History.TimeOut,即当前登录凭证中的登录时间与最近一次历史登录凭证中的登录时间之差是否大于最近一次历史登录凭证中的有效期;若大于则说明原登录已经注销或程序停止运行,此时返回允许登录信息到客户端中,否则说明用户已经登录,且目前正在使用系统中,禁止该用户重复登录,返回禁止登录信息到客户端中;
(5)客户端成功登录后,启动一个专门的线程,定时发送凭证续期时间TimeLease信息给服务器端,服务器端接收到续期请求后,会更新用户的登录凭证记录中的TimeOut属性值,使TimeOut = TimeOut + TimeLease,等号表示等号右边的值赋值到左边的量,此处TimeLease=TimeMax/2,TimeMax是系统允许的在一个地点注销后,能在另一个地点登录的最大时间间隔;
(6)客户端循环的按周期向服务器端进行续期。
本发明的优点是:本发明所述的方法简单易用,其实施不需部署专门的主域控制器,成本非常低。
附图说明
图1是本发明的总体流程图。
图2是客户端与服务器端信息交互关系图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
本发明所述的限制用户多地点同时登录的方法涉及软件的客户端与软件的服务器端,其中客户端负责用户的合法性判断,以及登录凭证的生成、缓存及凭证续期,服务器端负责登录凭证信息的记录、续期的增加以及判断是否允许登录。本发明的基本思想是根据用户登录所在计算机的硬件信息生成一个登录凭证,并设置该凭证的有效期,然后将凭证传递到服务器端,客户端每隔一定周期自动的进行凭证的续期,服务器端依据凭证及有效期对登录进行限制控制。
所述凭证是系统判断特定用户登录的唯一证据,所述凭证的属性信息包括:用户标识UserId、登录所在计算机MAC地址SiteId、精确到毫秒的登录时间LoginTime、有效期TimeOut,并将属性信息采用对称加密算法进行加密后传递给服务器端。
如图1所示,具体步骤如下:
(1)客户端根据用户的录入信息,判断其是否合法用户,若是合法用户则获取该用户的UserId、Mac地址、CPUId(主机CPU的标识)等信息,并获得服务器的当前时间作为本次登录的LoginTime,设置TimeOut = TimeLease=TimeMax/2,基于上述信息构建登录凭证,经对称加密后传递到服务器端的登录验证服务(采用标准的对称加密算法进行加密);
(2)登录验证服务接收到登录请求后,经解密后依据凭证中的UserId查询对应用户的登录凭证记录表,并对该行记录进行加锁,防止其他用户更改该记录;
(3)服务器端登录验证服务,采用“登录限制方法”对登录信息进行验证,并将登录验证信息经加密后反馈到客户端登录模块中,并对登录凭证记录进行解锁;
(4)客户端接收到登录验证信息后,对信息进行解密后解析,若被限制登录,则提示该用户已在其它地点登录,并将该地点的MAC地址反馈给用户,用户可同网管联系确定究竟在何处登录;
(5)若客户端接收到允许登录信息,则导航到指定的目标功能界面以供用户使用,同时启动一个单独的线程,按周期TimeMax/2向服务器进行续期,至此登录过程结束。
上述过程中所涉及的客户端与服务器端信息交互关系如图2所示。
凭证的生成:用户登录的凭证是系统判断特定用户登录的唯一证据,本方法中,登录凭证包括:用户标识、计算机MAC地址、精确到毫秒的登录时间、有效期等属性信息,并将该信息采用对称加密算法进行加密后传递给服务器端。
凭证中的用户标识为信息系统中对用户的唯一性的描述,通过该属性可以识别具体的登录者是谁,此处用UserId来表示。
凭证中的计算机MAC地址为信息系统中对地点的唯一性描述,考虑到计算机网卡的MAC地址亦可配置,因此为了更精确的对地点进行唯一性描述,通过联合用户计算机的CPUId一起构造对地点的唯一性描述,即SiteId =MacAddress+CPUId,通过该属性可以识别具体的登录地点是哪儿。
凭证中的登录时间,此处用LoginTime来表述,有两个用途,一个用途是用于和MAC地址一起构建对登录地点的唯一描述;另一个用途是由服务器端的登录限制服务控制整个用户的登录生命周期。
凭证中的有效期,此处用TimeOut来表述,其主要用于记录该用户还有多长时间就可以认为其已经注销、退出或异常关闭。
登录限制方法如下。
在客户端登录时,将登录的凭证信息发送给服务器端的登录处理服务,此凭证信息记为:Credential_Current[UserId,SiteId,LoginTime,TimeOut]服务器端的登录处理服务的处理方法如下:
(1) 查询对应用户的登录凭证记录表,并对该用户的该条凭证进行数据库级加锁,防止此时用户在其它地点并发登录现象的产生,在此基础上读取出用户的最近一次历史登录凭证,在此处记为:Credential_History[UserId,SiteId,LoginTime,TimeOut]。
(2) 判断Credential_Current. SiteId 是否等于 Credential_History. SiteId,若等于说明是在本机进行再次登录,则直接允许其登录,并将Credential_Current信息记录到登录凭证记录表中,并将允许登录信息返回到客户端中。
(3) 若Credential_Current. SiteId 不等于 Credential_History. SiteId则说明此次登录的地点同上次不同,转到步骤4进行处理。
(4) 判断( Credential_Current.LoginTime - Credential_History.LoginTime )是否大于Credential_History.TimeOut,若大于则说明原登录已经注销或程序停止运行,此时可以返回允许登录信息到客户端中,否则说明该用户已经登录,目前正在使用系统中,禁止该用户登录,返回禁止登录信息到客户端中。
(5) 客户端成功登录后,启动一个专门的线程,通过该线程定时发送凭证续期时间TimeLease信息给服务器端,服务器端接收到续期请求后,会更新该用户的登录凭证记录中的TimeOut属性值,使TimeOut = TimeOut + TimeLease,此处TimeLease的大小同系统允许的在一个地点注销后,能在另一个地点登录的最大时间间隔TimeMax有关,依据采样定理TimeLease=TimeMax/2。
客户端循环的按周期TimeLease向服务器端进行续期。
机译: 在用户终端支持一种或多种无线电访问方法的情况下,根据用于用户识别的无线电访问方法显示数据速率的方法,特别是允许用户通过向用户告知有关最大量的数据来确定是否接受服务的方法可在适当的时间和地点通过HSDPA技术提供的服务
机译: 一种计算机搜索引擎根据其与地理区域的匹配并根据其与用户建议的参数的匹配来定位地理位置的系统和方法,并且可以在特定地点或某个地点指示PEOPIE的能力可以在网站上进行预订和订购的位置
机译: 一种计算机搜索引擎根据其与地理区域的匹配并根据其与用户建议的参数的匹配来定位地理位置的系统和方法,并且可以在特定地点或某个地点指示PEOPIE的能力可以在网站上进行预订和订购的位置