假如要实现“关掉浏览器或者换一种浏览器,只要之前的账户名或密码错了3次以上,都要输入验证码”肯定要在服务端用数据库的一个表字段记录当前用户登录的次数。
肯定要在服务端用数据库的一个表字段记录当前用户登录的次数
难道记录在别的地方就不行吗?
@Albert Fei: 可以,但是楼主说:即使关掉浏览器或者换一种浏览器都会生效?你还会有其他更好的办法?
服务端记录一个字典:
static Dictionary<int,int> loginErrorCount=new ....;
登陆前后判断。
记录的IP,应该用的页面的缓冲
自定义应用程序参数判断。
在数据库中存储登陆的错误次数
建立一个用户登录验证表,记录用户名,登录状态,登录时间,通过登录时间排序查询出这个用户登录记录的最后三次登录信息,如果信息中的登录状态均为失败的话,就显示验证码,否则则不显示
那你就用IP进行判断,记录同一个IP的登录信息
登录错误时,会记录登录用户名,IP等信息
一般同一个登录用户名登录错误超过一定次数就会出验证码
数据持久化在服务器端
这个感觉用session比较好,更好的可以用redis部署。根据ip来作为key,失败次数作为value。session有效时间内超过三次登录错误启用验证码。
验证码针对的是非人行为的提交请求,如果现在暴力请求,同时还能模拟不同浏览器请求,那建议把用户名和错误,IP地址等信息存服务器端或数据库吧~