[asp.net]带错误登陆次数限制的C#代码

本文探讨了在用户登录过程中,如何通过设定登录次数限制、锁定机制及错误次数管理来增强账户安全性。详细介绍了数据库设计、错误记录更新及登录验证流程。

一旦登陆次数超过3次则账号被锁定,锁定后无论密码是否正确都不能登陆,

锁定后60分钟解除锁定,

采用强类型dataset,

数据库设计:

用户ID用户名用户密码用户等级错误次数错误时间
UIDUNamePWlevErrorTimesErrorDateTime

 

dataset新增方法:

  ResetErrorTimes()重置错误次数

  IncError() 增加错误次数,设置当前时间为错误时间

 

C#代码:

 1 protected void Button1_Click(object sender, EventArgs e)
 2         {
 3             T_LoginTableAdapter adapter = new T_LoginTableAdapter();
 4             var info = adapter.GetDataByUName(TextBox1.Text);
 5             var row = info.Single();                 //等到数据是否唯一?,不唯一则出错
 6 
 7 /////////////////////////////  上次错误时间 〉60?  //////////////////////////////////////////
 8             if (!row.IsNull("ErrorDateTime"))
 9             {
10                 if ((new DateTime() - row.ErrorDateTime).TotalMinutes > 60)
11                 {
12                     adapter.ResetErrorTimes(TextBox1.Text);
13                 }
14             }
15 ////////////////////////////////////////////////////////////////////////////////////////////
16 
17 ////////////////////////////////错误次数 > 3?/////////////////////////////////////////////
18             if (!row.IsNull("ErrorTimes"))
19             {
20                 if (row.ErrorTimes >= 3)
21                 {
22                     Label4.Visible = true;
23                     return;
24                 }
25             }
26 /////////////////////////////////////////////////////////////////////////////////////////////
27 
28 ////////////////////////////////密码是否正确?////////////////////////////////////////////////
29             if (row.PW!= TextBox2.Text)
30             {
31                 adapter.IncError(TextBox1.Text);
32                 return;
33             }
34 /////////////////////////////////////////////////////////////////////////////////////////////
35 
36 ///////////////////////////////登陆成功 ////////////////////////////////////////////////
37             adapter.ResetErrorTimes(TextBox1.Text);
38             Session["level"] = row.Lev;
39             Session["Login"] = "true";
40             Session["ID"] = TextBox1.Text;
41             Response.Redirect("Download.htm");
42 //////////////////////////////////////////////////////////////////////////////////////////////
43         }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值