asp.net 30分钟内5次登陆错误,锁定账号。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net 30分钟内5次登陆错误,锁定账号。相关的知识,希望对你有一定的参考价值。

求思路,有人说用cookies,有人说用session,求具体思路,或者具体代码,不明白的继续问,在线等,高分。

看你的需求,如果你需要的效果是,针对一个客户端(浏览器),超过五次登录错误,就禁止该客户端登录,就应该使用cookie,风险在于cookies是可以用户手动删除的

而Session端的控件,是不用担心用户清除cookies的,而是担心用户切换浏览器,注销机器重开,重启电脑等行为

所以浏览器锁登录,其实意义不大,你真正要帮的,应该是针对一个固定用登录名,在你的服务的一个静态变量里加锁

比如
static Dictionary[String,Int32] 变量名
每登录失败一次,就 变量名[登录名]+=1
然后对于任意一个请求,先检查在这个集合里存不存在,如果存在,看他的次数是否超过5次追问

那这么说我只能把错误次数存进数据库了?

追答

进数据库也是可以的,就看你想怎么设计了

追问

还有比这个简单好用的方法吗?

追答

唔,能力有限,暂时想不出来什么更好的方法。。。

参考技术A 给你个想法
登陆的数据表增加两个字段,一是错误次数,一是错误登录时间
所谓的错误肯定是错误密码,要是用户名都错了,那无所谓了
第一次错误输入,次数为1,时间为当前时间
正确登录,错误次数清零,时间可以不清零
继续错误,那次数增加,时间不更新
到第五次时判断当前时间和错误时间是否在半小时内,如果是就锁用户账号
我有个疑问,你就让他一直试下去?还不如5次就直接锁,不判断时间呢,程序更简单追问

基本思路我明白了,但是有些细节不太明白。
第一次错误了数据库中的错误次数更新为1,第二次错误了更新为2,那么怎么判断他是第一次错误还是第二次错误。

追答

第二次,发现密码错误,再检查这个输入次数,1就增加为2,要是4那这次就是第五次,可以判断是不是锁号了

追问

那么说最少要有获取错误次数和错误时间、更新错误次数和错误时间两个方法了?

追答

仅第一次错误更新错误时间,其余只查询不更新,这样程序简单点

本回答被提问者采纳
参考技术B 首先你要了解 什么是cookie ,什么是session 。session和cookie 又什么关系。
通俗跟你讲,cookie就是客户端的数据缓存。session是服务端的数据缓存。http是无状态,是请求/响应模型; 所以要模拟成有状态的就必须每次传递一个特定的数据给服务端,这样才能确认客户端。
=======
你上面说要 30分钟内登陆错误超过5次,就锁定账号。
这个与session 和cookie 没有任何关系。 用户每登陆失败一次,你在数据库记录一次。 用户登陆之前查询30分钟内的登陆失败的次数,大于5 则告知用户。
参考技术C #region 判断登录次数
if (Session["AdminLoginSun"] == null)

Session["AdminLoginSun"] = 1;
Session["AdminLoginTime"] = DateTime.Now;

else

Session["AdminLoginSun"] = Convert.ToInt32(Session["AdminLoginSun"]) + 1;

if (Session["AdminLoginSun"] != null && Convert.ToInt32(Session["AdminLoginSun"]) > 5)

if (Session["AdminLoginTime"] != null )

DateTime FLoginTime = Convert.ToDateTime(Session["AdminLoginTime"]);
TimeSpan ts = DateTime.Now - FLoginTime;
if (ts.Minutes < 30)

VoBao.Common.MessageBox.Show(this.Page, "对不起,30分钟内5次登陆错误,锁定账号!");


return;

#endregion
参考技术D 记录下上次错误登录的时间和出错的次数,如果本次登录还是错误,则次数加上,上次登录时间不变,如果本次登录正确,则清空上次错误登录的时间和次数。当前时间与上次错误登录时间超过30分钟且出错次数到4(因为本次还要算一次),则不允许登录。

如何先用asp.net身份框架数据库将asp.net mvc迁移到asp.net core

【中文标题】如何先用asp.net身份框架数据库将asp.net mvc迁移到asp.net core【英文标题】:How to migrate asp.net mvc to asp.net core with asp.net identity framework database first 【发布时间】:2021-10-05 20:39:15 【问题描述】:

我有一个数据库优先的 asp.net mvc 应用程序,现在我想将它与我的所有身份表一起迁移到 asp.net 核心,并首先像数据库一样使用它。我研究了很多,但找不到任何合理的来源。

【问题讨论】:

可以帮忙:blog.devart.com/… 【参考方案1】:

如果你想从 asp.net mvc 迁移到 asp.net core 你应该检查this链接 有关迁移身份的更多信息,请查看this 链接。

【讨论】:

以上是关于asp.net 30分钟内5次登陆错误,锁定账号。的主要内容,如果未能解决你的问题,请参考以下文章

连续三次登陆失败锁定账户

Python作业之三次登陆锁定用户

asp.net,密码5次错误就15分钟内禁止登录

Day5.对文件的增删改查+三次登陆后锁定

python实现三次登陆

平台登录时,1分钟内连续错误5次建议锁定帐号5分钟。