关于用户限制登录次数的问题

问题描述

怎么限制用户用同一账号登录2次?打开2次窗口?同一浏览器,我试过用session可以,但是不同浏览器的话session不行。求帮忙?

解决方案

解决方案二:
换电脑了,原来电脑没有退出,让登录么?
解决方案三:
不同浏览器,只能通过数据库记录登录状态,判断是否重复登录
解决方案四:
引用2楼xup8888的回复:

不同浏览器,只能通过数据库记录登录状态,判断是否重复登录

这个可以考虑下,但是还要考虑很多因素,领导应该是不同意了!
解决方案五:
把登陆信息放到application里面啊,服务器不关闭application会一直保存登陆的用户信息,注销的时候从application销毁就可以了
解决方案六:
登录的时候会验证嘛,登录后的session中保存了用户的标志性信息,比如用户名/id之类,登录验证的时候根据此类信息查找session,找到了就是已经登录。将原session失效就好了
解决方案七:
引用5楼skyhitnow的回复:

登录的时候会验证嘛,登录后的session中保存了用户的标志性信息,比如用户名/id之类,登录验证的时候根据此类信息查找session,找到了就是已经登录。将原session失效就好了

楼上正解。如果数据量不大的话,你可以建个map,key为user_id,value为session_id,用户登录验证通过的话,你就看看user_id是否在map中嘛......
解决方案八:
说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的
解决方案九:
引用7楼bcsflilong的回复:

说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的

1.信息量不是很大,又不是经常改动,建议放在application中2.也可以用缓存啊,缓存技术挺多的
解决方案十:
引用8楼zhouren1314的回复:

Quote: 引用7楼bcsflilong的回复:
说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的

1.信息量不是很大,又不是经常改动,建议放在application中2.也可以用缓存啊,缓存技术挺多的

还要考虑负载均衡
解决方案十一:
引用9楼MrsFeng的回复:

Quote: 引用8楼zhouren1314的回复:
Quote: 引用7楼bcsflilong的回复:
说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的

1.信息量不是很大,又不是经常改动,建议放在application中2.也可以用缓存啊,缓存技术挺多的

还要考虑负载均衡

均衡的话,那就只有写进数据库了,不然怎么办,有何高见?
解决方案十二:
这个话题,始终都不是绝对完美的办法,无论从应用,还是数据库都有弊端
解决方案十三:
数据库行级锁?
解决方案十四:
引用12楼zhengweijian15的回复:

数据库行级锁?

何解?
解决方案十五:
引用10楼zhouren1314的回复:

Quote: 引用9楼MrsFeng的回复:
Quote: 引用8楼zhouren1314的回复:
Quote: 引用7楼bcsflilong的回复:
说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的

1.信息量不是很大,又不是经常改动,建议放在application中2.也可以用缓存啊,缓存技术挺多的

还要考虑负载均衡

均衡的话,那就只有写进数据库了,不然怎么办,有何高见?

既然是负载均衡还是放在库里处理吧,但是用户量大的话数据库要遭罪了或者考虑一下单独处理这块的缓存尽量减少对库的读写
解决方案:
引用14楼bcsflilong的回复:

Quote: 引用10楼zhouren1314的回复:
Quote: 引用9楼MrsFeng的回复:
Quote: 引用8楼zhouren1314的回复:
Quote: 引用7楼bcsflilong的回复:
说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的

1.信息量不是很大,又不是经常改动,建议放在application中2.也可以用缓存啊,缓存技术挺多的

还要考虑负载均衡

均衡的话,那就只有写进数据库了,不然怎么办,有何高见?

既然是负载均衡还是放在库里处理吧,但是用户量大的话数据库要遭罪了或者考虑一下单独处理这块的缓存尽量减少对库的读写

一般验证是统一验证吧。逻辑写在验证服务器上就可以了吧。重复登录需要重复验证,验证时查看是否已经登录就可以了。
解决方案:
引用15楼skyhitnow的回复:

Quote: 引用14楼bcsflilong的回复:
Quote: 引用10楼zhouren1314的回复:
Quote: 引用9楼MrsFeng的回复:
Quote: 引用8楼zhouren1314的回复:
Quote: 引用7楼bcsflilong的回复:
说用session的那不是在扯淡吗?session的作用域是什么?把登陆信息放到application的这种方式才是正解,可以在application中方一个mapkey为用户名value为累计登录数,具体的逻辑需要自己好好在想想但是这种方式是没问题的

1.信息量不是很大,又不是经常改动,建议放在application中2.也可以用缓存啊,缓存技术挺多的

还要考虑负载均衡

均衡的话,那就只有写进数据库了,不然怎么办,有何高见?

既然是负载均衡还是放在库里处理吧,但是用户量大的话数据库要遭罪了或者考虑一下单独处理这块的缓存尽量减少对库的读写

一般验证是统一验证吧。逻辑写在验证服务器上就可以了吧。重复登录需要重复验证,验证时查看是否已经登录就可以了。

验证的时候需要读取数据库吧。

时间: 2024-09-21 01:22:37

关于用户限制登录次数的问题的相关文章

php用户登陆代码(限制用户错误登录次数)(1/2)

 代码如下 复制代码 session_start(); include("mysql教程.class.php"); $db=new mysql('localhost', 'root', '', 'flx', 'conn', 'gbk');   // 为方便测试,这里只是简单定义了一个特定的用户,在实际操作中,用户信息从数据库教程中得出;    define('user','admin');    define('pw', 123);  $db->findall('limit_lo

Oracle用户连续登录失败次数限制如何取消_oracle

当用户连续登录失败次数过多时,Oracle会锁定该用户,"FAILED_LOGIN_ATTEMPTS"用于设置最大次数,超过该值则锁定该帐号. 要取消用户连续登录失败次数的限制可以按照以下方法操作: 1. 输入以下命令,查看"FAILED_LOGIN_ATTEMPTS"的值: SQL> select * from dba_profiles s where s.profile='DEFAULT' and resource_name='FAILED_LOGIN_A

asp.net Cookie记录用户登录次数与防止同一账户重复登录

asp教程.net cookie记录用户登录次数与防止同一账户重复登录 放在登陆成功的地方:  string key = textbox1.text; //用户名文本框设为cache关键字  string uer = convert.tostring(cache[key]); //读取cache中用户相应的值 if (uer == null || uer == string.empty)//判断cache中是否有用户的信息,如果没有相关的值,说明用户未登陆 {   //定义cache过期时间  

JS记录用户登录次数实现代码

 当登录次数达到三次,就自动调用函数,隐藏弹出框.下面是具体的实现,感兴趣的朋友可以参考下 代码如下: function www_helpor_net(offset) {  var endstr = document.cookie.indexOf(";", offset);  if (endstr == -1)  endstr = document.cookie.length;  return unescape(document.cookie.substring(offset, end

JS记录用户登录次数实现代码_javascript技巧

复制代码 代码如下: function www_helpor_net(offset) { var endstr = document.cookie.indexOf(";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } function GetCookie(name) { var arg =

Linux中如何禁止非法用户试探登录

linux的服务主机暴露在互联网上,经常会遭到一些非法用户的骚扰.如弱口令扫描,试探性登录: 这些都对linux主机构成威胁.下面脚本,就将非法用户拒之门外. 原理:获取尝试登录linux主机用户的IP,切登录失败次数超过10以上, 就认为此类IP为非法用户登录,然后将其IP追加到iptables规则中进行过滤,使其不能与linux主机通讯,系统每隔10分钟执行一次. #/bin/bash rm -f /data/ip.txt 2>/dev/null /sbin/iptables -F cat

exchange部分用户不能登录,

问题描述 exchange中有部分用户突然不能登录,需要重新设置密码有才能登录,已经设置改用户密码为永不过期.环境为windows2003+exchange2003,域控制器和exchange装在一台服务器上.大部分用户没有出现这样的问题,exchange数据库现在有70G,服务器硬盘空间足够. 解决方案 解决方案二:这似乎和exchange无关,而是ad出了问题,注意域空有没有什么错误解决方案三:检查过服务器的日志文件,没有看到域控制器上有什么错误日志.解决方案四:exchange两个数据库加

2017060312C sqlplus显示用户上次登录时间

[20170603]12C sqlplus 显示用户上次登录时间.txt --//12c sqlplus使用sqlplus登陆会显示上次登陆的时间.实际上其他管理工具toad也一样. D:\tools\rlwrap>sqlplus scott/btbtms@test01p SQL*Plus: Release 12.1.0.1.0 Production on Sat Jun 3 18:11:08 2017 Copyright (c) 1982, 2013, Oracle.  All rights

帝国cms系统限制的登录次数不得超过5次请等60分钟过后方可重新登录

朋友的网站是帝国cms建的,他好久没登录有点忘记密码了,后面再登录就提示系统限制的登录次数不得超过5次请等60分钟过后方可重新登录,这个如何解决呢?其实只要修改一下配置文件就可以了:修改e/class/config.php(有的系统可能是e/config/config.php)文件里的"'loginnum'=>5,"把5改成10次. 重新登录,后台系统参数设置-用户设置:这里自己设置超时时间和密码错误次数 可以把后台登陆次数限制设多点,比如50次:重新登录时间间隔设置短点,比如1