ASP实例教程_如何限制用户登陆失败次数详解
应该如何使用ASP实现限制用户登陆次数?请高手具体讲讲!如何让n次失败的用户在m分钟后才可以在登陆!谢谢~
登陆失败后,失败计入失败次数表,该表每分钟运行擦掉最早x分钟之前的数据,如果>n次则该用户不能登陆啊
解:
这样解决
这个问题都讲多少次了,
用一个表把登陆的用户都登记下来,要记录,用户id,登陆时间,最后操作时间、ip地址、等等
然后再每个页面里面做更新操作,把最新的操作时间写过来,
在用户登陆的时候到这个表里面找一下,如果已经登陆在线的话,就提示已经登陆,如果不存在的话就允许登陆。
如果退出的话就把记录删除掉
在登陆页面或所有的页面里面执行一个操作,如果这人有10分钟,或自己设定的时间没有动作,就把记录干掉,就可以再登陆了
在系统管理员那里可以来个监视页面
可以执行踢出操作(如果是应用型系统的话,)
如果加了管理在线用户的话,那么在刷最新操作时间的时候就要多一个判断了,现看这个用户是否还在这个表里,如果不在了(说明已经被管理员踢出了),就转到登陆页面(如果进行在线管理的话可以用这方法),或者在里面加一条进去(因为这里有其他的措施来控制用户是否合法,这里只是控制重复登陆,所以可以允许插入一条记录。这些都要看实际的情况了。),如果记录存在的话,就更新最近活动时间。
就是如果他自己不小心地关掉了,那么就要等一定的时间才能再登陆
为了 解决就是如果只有一个人操作会锁死的问题,不能登陆,可以在登陆的页面里面先做清理操作,然后再判断是否已经登陆在线,然后再判断登陆
关于一条记录不允许多人操作的问题
可以在表里面单独设置一个字段来控制
有的时候,不打标记,怕给人先改一步,打了标记又怕停电,
我建议你你这样处理,在线用户统计用过吧,几分钟没有动作就自动从在线的临时表删除。
你可以这样,在调记录的时候,给被调的记录打一个标记,同时写上一个时间,每次判断处理一下,如果被调用了,超过一定的时间还是没有更新的,就把这个标记和时间删除(当然可以只增加一个时间字段作为标记),在保存的时候也判断一下,超时编辑的或那个标记为空的,就提示编辑不成功,是否就可以了。
这是最好的办法了
因为一般 的数据库锁定,只是在你做UPDATE的时候才锁定,不允许你同时更新
希望对你有所启示
记入一个表,错就加1,同时记录时间
下次错再加1,记录时间
到达 次数就限制输入
更新数据
根据那个时间如果最后登陆超过时间,就更新计数为0