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 = "用户名或密码错误!";
                        }
		}
	}
}
完成~


posted @ 2014-07-07 11:42  蒋源德  阅读(595)  评论(0编辑  收藏  举报