如题
用户表
id name pass

解决方案 »

  1.   

    添加到Application里面就可以了
      

  2.   

    给你例子:
    private void Button1_Click(object sender, System.EventArgs e)
    {
    // Check IP
    if (!new DenyIP().DetectIP((DataTable)Application["IPList"],PublicConst.RemoteUserIp,10))
    {
    //DataMethod.RunPro_Logs("None","IP被拒绝10分钟"+PublicConst.RemoteUserIp,"0","Lock");
    Message.Alert("多次登录失败,IP被拒绝",Page);
    return;
    }

    if (Text_user.Text.Trim()=="" || Text_pswd.Text.Trim()=="")
    {
    Message.Alert("用户名和密码不能为空",Page);
    }
    else
    {
    string Str_user=CheckData.CheckString(Text_user.Text.ToString());
    string Str_pass=Text_pswd.Text.Replace("=","");
    try
    {
    //this.DeletePrivateFile();
    if(Role.DataMethod.CheckLogin(Str_user,Str_pass))
    {
    // FormsAuthentication.SetAuthCookie(Str_user,true);
    // FormsAuthentication.RedirectFromLoginPage(Str_user,true);
    // Response.Write ("dd"+Context.User.Identity.Name);
    Response.Redirect("default.aspx",false);
    // Response.Redirect(PrivateConst.HistoryUrl,false);
    // PrivateConst.HistoryUrl = null;
    }
    else
    {
    new DenyIP().Add((DataTable)Application["IPList"],PublicConst.RemoteUserIp);
    Message.Alert("登入失败!可能原因\\n用户名或密码不正确\\n太多的错误次数,ID被拒绝",Page);
    }
    }
    catch(Exception exp)
    {
    SendMail.SendMailToManager(exp.ToString());
    Message.Alert("登入失败\\n服务器数据错误,请联系管理员",Page);
    }
    }
    }
      

  3.   

    public static bool CheckLogin(string userName,string passWord)
    {
    bool loginok=false;
    string sql=" select * from userm where login_id='"+ userName +"' and nvl(stop_mk,'0') <>'1'  " ;
    IDataReader r= OracleHelper.GetDataReader(sql);
    if (r.Read())
    {
    // Lock UserId 3 minutes
    if (PrivateConst.ErrorTimes >3)
    {
    //LockUser(userName,3);
    //RunPro_Logs(userName,"多次登录失败,封ID3分钟","0","Lock");
    r.Close();
    return false;
    }
    passWord = Encrypt.Encode(passWord,PrivateConst.EncryptKey);

    //string DepassWord =Encrypt.PBDecode(r["usr_pwd"].ToString());
    //SendMail.SendMailToManager(passWord +"-"+DepassWord);
    if (passWord == r["usr_pwd"].ToString())
    {
    if(r["PWD_UPD_DATE"].ToString().CompareTo(PublicConst.DateNowToday8) <0 )
    {
    loginok = false;
    }
    else
    {
    Users myuser = new Users(); //myuser.CORP_NO = r["CORP_NO"].ToString();
    myuser.CORP_NO ="";
    myuser.USR_ID = r["USR_ID"].ToString();
    myuser.USR_CNAME = r["USR_CNAME"].ToString();
    myuser.LOGIN_ID = r["LOGIN_ID"].ToString(); //登录用ID,原Usr_id 作为内部标识符使用
    myuser.USR_ENAME = PublicConst.RandomByNumber(4); //记录在线用户用,作为同一ID多次登录的识别符
    //myuser.USR_PWD = r["USR_PWD"].ToString();
    //myuser.USR_KIND = r["USR_KIND"].ToString();
    //myuser.DEPT_NO = r["DEPT_NO"].ToString();
    //myuser.BRANCH_NO = r["BRANCH_NO"].ToString();
    myuser.LOGIN_TIME = PublicConst.RandomByTime14;
    myuser.LOGIN_TIMES = CheckData.ToInt(r["LOGIN_TIMES"]);
    myuser.LAST_IP = PublicConst.RemoteUserIp;
    myuser.STOP_MK = r["STOP_MK"].ToString(); PrivateConst.User = myuser;
    //SendMail.SendMailToManager(myuser.corp_no+myuser.UserZone);
    if (CheckData.ToString(r["logout_time"]).CompareTo(PublicConst.RandomByTime14) <0)
    {
    // 记录登录情况
    UserLogs(myuser.USR_ID);
    loginok = true;
    }
    else
    {
    loginok =false;
    }
    }
    }
    else
    {
    loginok =false;
    }
    }
    else
    {
    loginok = false;
    }
    r.Close(); if (loginok)
    {
    // Set Init Corp
    // add 2006-11-15
    //PrivateConst.User.CORP_NO = DataCommon.GetInitCorpNo(userName);
    PrivateConst.User.CORP_NO = "";
    PrivateConst.ErrorTimes =0;
    return true;
    }
    else
    {
    PrivateConst.ErrorTimes +=1;
    return false;
    } }
      

  4.   

    加个字段识别就好了:
    id name pass time errcount当用户登入1次错误就把errcount+1,但errcount=5的时候就不给用户登入,并把time设置为当前系统时间,用户再次登入的时候就比较该时间是不是过去了10分钟,如果是就把errcount改为0,让用户登入