实现单点登录并强制对方下线

          前些天做了一个网站,客户的要求是实现单点登录,并如果有人在用这个号码登录就强制第一个人下线。自己以前看到过这个例子,是将用户登录的信息存储在application之中,登录的时候判断是否由此信息,来实现单点登录。但是这有一个弊端,就是用户必须正常退出(其实应该还有别的方法,只是我暂时还没有想到),下次才能正常登录。但是不可能所有的用户都会想到去点击退出,由此就会有好多的用户登录之后,如果不是正常退出,下次就不能登录了。

          又到网上去搜索了一下,就是有个,当用户关闭浏览器的时候触发一个事件,然后调用方法,清除用户登录的信息。但是这样问题有出来了,如果用户关闭的不是浏览器,而是一个网页标签的话,这样的就不会触发这个事件了。在一次否定了。

           最后又回到了application,只能在此去做文章了,其实这个解决方案,是我的主管点拨我的,借此来跟大家分享。回到话题,每当一个用户启动浏览器,就回在服务器端创建一个会话,每个会话有不同的ID,在存储信息的时候,把sessionID和用户的用户名(用户名必须唯一)以字符串的形式来存储到application之中,当下一个用户用相同的用户名进行登录的时候,把取出存储在application中sessionID,然后根据此ID删除,存储用户信息的会话,以此来实现单点登录,并且强制早先登录的用户。

          这个知识点也是刚实现,就跟大家来分享了,测试成功了,但是不知会有其他的弊端。如果后续有什么BUG,会再次更正。

     

阅读更多

没有更多推荐了,返回首页