输错三次禁止登陆,15分钟后才能继续。用数据库记录ErrorTimes,最后出错时间lastErrorDateTime。

 前台代码:


        <asp:Label Text="姓名:" runat="server" ID="label1"></asp:Label>
    <asp:TextBox ID="txtUserName" runat="server" Text=""></asp:TextBox><br />
    <asp:Label ID="label2" Text="密 码" runat="server"></asp:Label>
    <asp:TextBox ID="txtPwd" Text="" runat="server"></asp:TextBox><br />
    <asp:Button ID="btn" runat="server" Text="登录" OnClick="btn_Click" />
        <asp:Label ID="Label3" runat="server"></asp:Label>


后台代码:


        protected void btn_Click(object sender, EventArgs e)
        {
            string sqlread = "select * from T_user where FuseName=@name1";
            SqlDataReader reader = SqlHelp.ExecuteDataReader(sqlread, new SqlParameter("name1", txtUserName.Text.Trim()));
            if (reader.Read())
            {
                object times = reader.GetValue(2);
                if ((int)times <3)
                {
                    dengLv(); 
                }
                else if ((int)times == 3)
                {
                    btn.Enabled = false;
                    string sqlWrite = "update T_user set FlastErrorDateTime=@writerTime where FuseName=@name2";
                    SqlHelp.ExectueNonQuery(sqlWrite, new SqlParameter("name2", txtUserName.Text.Trim()), new SqlParameter("writerTime", DateTime.Now));
                }
                else
                {
                    btn.Enabled = false;
                    string outTimes = "select * from T_user where FuseName=@name3";
                    SqlDataReader reader1 = SqlHelp.ExecuteDataReader(outTimes, new SqlParameter("name3", txtUserName.Text.Trim()));
                    if (reader1.Read())
                    {
                        DateTime datetime =(DateTime) reader1.GetValue(3);
                            //C#日期相减的的方法
                            //DateTime    t1    =    DateTime.Parse("2005-01-01");
                            //DateTime    t2    =    DateTime.Parse("2006-01-01");
                            //System.TimeSpan    ts    =    t2    -    t1;
                            //int    days    =    ts.Days;
                        System.TimeSpan ts = DateTime.Now - datetime;
                        int miniute = ts.Minutes;
                        if (miniute >= 15)
                        {
                            btn.Enabled = true;
                            string sql2 = "update T_user set FErrorTimes=0  where FuseName=@useName";
                            SqlHelp.ExectueNonQuery(sql2, new SqlParameter("useName", txtUserName.Text.Trim()));
                        }
                    }
                }
            }
        }


        protected void dengLv()
        {
            #region 登录不成功累加次数,登录成功后清零
            string sql = "select * from T_user where FuseName=@name";
            SqlDataReader read = SqlHelp.ExecuteDataReader(sql, new SqlParameter("name", txtUserName.Text.Trim()), new SqlParameter("pwd", txtPwd.Text.Trim()));
            if (read.Read())
            {
                Response.Write("登录成功!!!!");
                string sql2 = "update T_user set FErrorTimes=0  where FuseName=@useName";
                SqlHelp.ExectueNonQuery(sql2, new SqlParameter("useName", txtUserName.Text.Trim()));
            }
            else
            {
                string sql1 = "update T_user set FErrorTimes+=1  where FuseName=@useName1";
                SqlHelp.ExectueNonQuery(sql1, new SqlParameter("useName1", txtUserName.Text.Trim()));
            }
            read.Close();
            read.Dispose();
            #endregion
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值