日期:2014-05-18  浏览次数:20503 次

急!!!怎么判断用户密码错误三次将其帐号禁用
我想在一个用户输入密码错三次后将其帐号锁定,但是现在有个问题是:如果我用一个用户名A登陆时密码错误两次,第三次我用另外一个用户名B登陆,再错一次密码,则就把B帐号给锁定了。
static   int   i=0;
private   void   btnLogin_Click(object   sender,   System.EventArgs   e)
{
            S_User   user   =   new   S_User();
            string   strUserId   =   txtUserID.Text.Trim();
            string   strPassWord   =   txtPassWord.Text.Trim();
            string   sucess   =   user.Login(strUserId,strPassWord);
            switch(sucess)
            {
case   "1 ":
    Page.RegisterStartupScript( "ErrorMsg ", " <script   language= 'javascript '> alert( '用户名输入错误! '); </script> ");
  break;
case   "2 ":
        i++;
        if   (i   > =   3)
        {
              user.LockSysAccount(strUserId);
                                Page.RegisterStartupScript( "ErrorMsg ", " <script   language= 'javascript '> alert( '密码输入错误三次,该帐号被锁定,请联系管理员! '); </script> ");
              i   =   0;
          }
          else
          {
Page.RegisterStartupScript( "ErrorMsg ", " <script   language= 'javascript '> alert( '用户密码输入错误! '); </script> ");
            }

          break;
case   "3 ":
          Page.RegisterStartupScript( "ErrorMsg ", " <script   language= 'javascript '> alert( '该帐号不存在或帐号已被禁用,请联系管理员! '); </script> ");
          break;
case   "4 ":
Session[ "UserID "]   =   strUserId;
Response.Redirect( "Desktop.htm ");
break;
}

------解决方案--------------------
加个sessionID做为参考,只要sessionID一样,就计数
------解决方案--------------------
再用个变量存用户名不就得了,一旦输入用户名不等于保存用户名,计数器复位。
顺便提一下,禁用帐户最好不给提示,否则,不怀好意者会记录你系统上有哪些用户,以作它图……
------解决方案--------------------
用户尝试登录的次数保存在session中就可以了