三次登录失败停留15秒才可重试

     之前在学习登录页面时,主要是为了复习我们学习ADO.Net时的一个防注入漏洞攻击,当然也有连接数据库的一系列操作,使用参数,发挥参数的作用。当时听到视频教程里老师讲到当我们尝试登录失败多次后,系统就会锁定登录界面,等待一定的时间之后用户才能成功登录,只是提到了一个思路,先记录下尝试上限时的时间,再根据过了多少时间才能够再登录。

     今天我尝试试登录多次后,停留一定时间才能继续登录。

     首先,使用登录功能,务必需要一个用户名和密码的数据库,这里为了简单,就简略地随便编造了一个。

     

     在VS中,前期的操作,连接数据库、写sql语句等等。包括后面需要使用的systemLock(),这个方法是设置文本框及按钮的是否可用的功能。

   


     

     错误三次时的提示

     

     成功登录的提示

     

     主要是使用ExecuteScalar()方法,通过点击按钮来触发事件,将文本框输入的数据与数据库中的数据库进行匹配,成功返回值并显示成功。
     当错误时,系统会有一个变量,会计数,当次数达到三次时,系统会将文本框及按钮的属性Enabled设置为false,并通过System.Threading.Thread.Sleep()这一方法,停留15秒,再将将文本框及按钮的属性Enabled设置为true。这样一来,貌似不需要计入系统地时间,好像变得非常简单了。其实不然,这里有一个非常大的弊端。
     使用System.Threading.Thread.Sleep()这个方法,会占用系统资源,好像一般的登录,锁定也不是这种不能登录的方式,如果锁定时间过长,那么上面那个方法会非常占用时间,因此不可取。
     像iphone手机的锁屏功能,当密码输错,系统随着累计出错,时间停留的时间也会变长,时间等待也是在输入时提醒。
     因此我们的登录界面,需要将输入到上限即3次时,记下此时的系统时间,当再次尝试登录时,通过比较两者的时间差,来比较是否达到时间间隔,就可以达到这一目的了。当然必须是同一账号尝试三次后,进行判断。

     个人觉得有个bug,比如一个的账号,被别人总是错误登录,那当本人去登录的时候不是锁住了吗?这该怎么办?

     附上代码三次登录失败停留15秒才可重试

     备注:写于2013年4月22日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值