asp.net限制用户登录错误次数
很经常在登录一个网站的时候看到,如果你登录的时候输入的账号密码错误超过三次就被锁定,然后等一段时间才能继续登录,最最经常使用的就是银行系统啦~~
该功能处理流程如下:
string uid = Request.Form["uid"] ?? ""; //获取用户登录名 string pwd = Request.Form["pwd"] ?? ""; //获取密码 T_Users user = userNameBll.GetByUserNameBll(uid);//调用Bll,根据用户登录名查找用户 if (user == null) { showUidHtml = "用户名不存在!"; } else { if (user.ErrorTimes >= 3 && (DateTime.Now - user.LastLoginDate).TotalMinutes < 15)//如果该用户的错误次数>=3,而且最后的出错日期<15分钟,那么锁定该用户 { showUidHtml = "用户已锁定"; } else<span style="white-space:pre"> </span>//用户还有继续尝试登录的机会 { if ((DateTime.Now - user.LastLoginDate).TotalMinutes >= 15)//如果用户的最后出错日期已经>=15分钟,那么重置出错次数为0(实现15分钟之后不管有没有出错都为0,可以尝试登录) { user.ErrorTimes = 0; } if (user.Password.Trim() == pwd)//如果密码正确,重置出错次数,并记录相关信息 { user.LoginTimes++; user.ErrorTimes = 0; user.LastLoginDate = DateTime.Now; userBll.Update(user); Session["User"] = user; } else//如果密码错误,出错次数++,并记录最后出错的日期,更新到数据库 { user.ErrorTimes++; user.LastLoginDate = DateTime.Now; if (userBll.Update(user)) { showPwdHtml = "用户名或密码错误!"; } } } }完成~