当前位置: 首页 > news >正文

青岛企业网站模板建站义乌小商品市场网

青岛企业网站模板建站,义乌小商品市场网,网站与装修公司,可信赖的邵阳网站建设在web应用系统中#xff0c;出于安全性考虑#xff0c;经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。 具体一点就是#xff1a; 1、在同一台电脑上一次只允许有一个用户登录系统#xff1b; 2、一个用户在同一时间只允许在一个客户端登录…在web应用系统中出于安全性考虑经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。 具体一点就是 1、在同一台电脑上一次只允许有一个用户登录系统 2、一个用户在同一时间只允许在一个客户端登录。 我最近做的一个系统就遇到了这样的问题本来系统已经开发完成了但是安全测评没有通过就是因为没有做这两个限制。怎么来做这样的限制呢我在网上找了很久发现问这个问题的人很多但是没有找到特别清楚的答案。后来自己摸索着看了一些书终于找到解决办法了。 要解决这个问题实际上不难对于高手来说可能都懒得去说了但是对于不熟悉web编程的人来说可能会困扰很久。下面我把我的解决办法说出来供大家参考 先介绍一下我那个系统的背景j2eetomcat没有用cookie。 首先确定解决这两个问题的基本思路 1、要解决同一台电脑上只允许有一个用户登录系统只有一个办法。监视每一个连接的来源如果发现有一个新的连接与某个已经存在的连接来自同一台电脑则终止其中的一个当然也可以提醒用户让他自己决定终止哪一个。 2、要禁止一个用户账号同时在不同的客户端登录只有监视每一个连接的用户账号如果发现一个新连接的用户账号跟某个已经存在的连接的用户账号相同则自动将前一个终止同样也可以让用户自己决定终止哪一个。 确定了基本思路以后就要找具体办法了。我最初的想法是在数据库建立一张表存放已登录用户的用户名、物理地址、Session id等信息。当用户登录时与这张表里面的数据进行匹配如果发现物理地址与表中的某条记录相同则表示是同一台客户端上有多个用户再登录如果发现正在登录的用户的用户名与表中已有记录相同而主机名不同则表示是一个账号同时在不同的客户端使用。 相信很多一开始遇到这个问题的人都会考虑这种解决办法。但是这种办法有很多问题最主要的问题有两个第一是效率每一次都要从数据库里面取数据进行匹配。第二是用户退出时需要删除表中的记录而当用户非正常退出时很难及时监测后来发现其实有办法监测。 后来在网上的某个帖子里面看到一位大侠提到用监听器只是那位大侠说的太含糊照他说的办法根本无法解决。虽然无法解决但是提供了一个思路。于是我找了一本书仔细看了其中关于监听器的部分。解决办法就在其中了 监听器的详细介绍见我的下一篇博文这里先把解决办法告诉大家 监听器可以监听Session及其所包含的属性即Attribute。 所以我们要做的就是 1、建立一个监听器实现HttpSessionAttributeListener接口监听每一个Attribute的增加、编辑、删除事件。监听器中还要建立一个map将所有的session放入这个map中。 2、在用户登录时将用户名、物理地址、Session id存到Session中去可以建立一个用户登录地址数据传输对象我建立了一个UserSessionAdd类里面包含usernamemacAddsessionId三个属性用户登录时将这个数据对象初始化并存入到session中。 3、每个新会话开启时在监听器中对Session包含的属性进行判断如果新增的属性与map中已有session的用户登录地址数据相同则表示新会话与我们要做的两个限制相冲突。将与之冲突的会话提取出来销毁掉 这么说还是不够清楚下面看代码 Web.xml文件 03.listener 04. 05. listener-class监听器类的路径如com.web.MyListener/ listener-class 06. 07./listener 用户登录地址数据传输对象 01.public class UserSessionAdd { 02. 03. 04.private Stringadd; 05. 06. 07.private Stringsessid; 08. 09. 10.private String username 11. 12.public String getUsername(){ 13. 14.return username 15. 16.} 17. 18.Public void setUsername(String username){ 19. 20. this.usernameusername; 21. 22. } 23. 24.public String getIp() { 25. 26.returnadd; 27. 28.} 29. 30.publicvoid setAdd(String add) { 31. 32.this.add add; 33. 34.} 35. 36.public String getSessid() { 37. 38.returnsessid; 39. 40.} 41. 42.publicvoid setSessid(String sessid) { 43. 44.this.sessid sessid; 45. 46.} 47. 48. 49.} 用户登录的代码 03.String userHost request.getRemoteHost(); 04. 05.String sessionId request.getSession().getId(); 06. 07.UserSessionAdd usa new UserSessionAdd(); 08. 09.usa.setUsername(username); 10. 11.usa.setSessid(sessionId); 12. 13.usa.setAdd(userHost); 14. 15.request.getSession().setAttribute(“usa”,usa); 监听器代码 01.publicclass MyListenerimplementsHttpSessionAttributeListener{ 02. 03. 04.MapString, HttpSession map new HashMapString, HttpSession(); 05. 06.publicvoidattributeAdded(HttpSessionBindingEvent event) { 07. 08.String name event.getName(); 09. 10.if(name.equals(usa)){ 11. 12.UserSessionAdd usa (UserSessionAdd)event.getValue(); 13. 14.if(map.get(usa.getAdd())!null){ 15. 16.HttpSession sess map.get(usa.getAdd()); 17. 18.UserSessionAdd usa1 (UserSessionAdd)sess.getAttribute(usa); 19. 20.sess.removeAttribute(usa); 21. 22.sess.invalidate(); 23. 24.} 25. 26.map.put(usa.getAdd(), event.getSession()); 27. 28.} 29. 30.} 31. 32. 33.publicvoidattributeRemoved(HttpSessionBindingEvent event) { 34. 35.String name event.getName(); 36. 37.if(name.equals(usa)){ 38. 39.UserSessionAdd usa (UserSessionAdd)event.getValue(); 40. 41.map.remove(usa.getAdd()); 42. 43.} 44. 45.} 46. 47. 48.publicvoidattributeReplaced(HttpSessionBindingEvent event) { 49. 50.// TODO Auto-generated method stub 51. 52. 53. 54.} 55. 56.} 转自http://blog.csdn.net/yutan_313/article/details/5405934
http://www.zqtcl.cn/news/199649/

相关文章:

  • 商业门户网站是什么意思哪家培训机构学校好
  • 青岛企业网站制作seo排名优化培训网站
  • 2018做网站还是app上海搜索seo
  • 网站建设用模板好吗罗湖网站制作费用
  • 网站图片延时加载app推广视频
  • 郑州设计师网站个人搭建网站要多少钱
  • 网站制作成品下载wordpress怎么更改样式
  • 河北省城乡和建设厅网站首页网站维护属于什么部门
  • 西安建网站公司哪家好网站导航条设计欣赏
  • 张家港网站网络优化济南网站建设0531soso
  • 关于网站的建设深圳搜索优化排名
  • 网站建设的布局建设通破解vip
  • 怎样做公司网站介绍网站百度排名优化
  • 广州网站建设工作室招聘wordpress在哪里设置编辑器
  • 苏州网站建设功能大宗交易平台软件
  • 无域名网站 能否被百度品牌营销优化
  • 做爰全过程免费的网站视频做网站视频背景
  • 网站布局设计分析特点手机网站设计欣赏网站
  • 建设网站对服务器有什么要求灌南县规划局网站一品嘉苑规划建设
  • 常平镇仿做网站wordpress教程 菜单
  • 大气的企业网站做网站服务怎么赚钱
  • 如何用网站做淘宝客网易企业邮箱怎么修改密码
  • 白酒网站设计wordpress增加网址大全
  • 网站上图片可以做商业作品吗成都十大景观设计公司
  • 自助建站网站哪个好2017织梦网站怎么做seo
  • 佛山新网站建设咨询做业精灵官方网站
  • 大庆网站设计费用asp网站仿制
  • 革吉网站建设网页游戏中心大全
  • 好的网站特点京东物流网站建设特点
  • 昆明企业自助建站系统网站建设技术交流