• 如何做登陆验证


    1、存储过程
    CREATE PROCEDURE sysEmpLogin
       
    @loginid varchar(50),
       
    @password varchar(50),
       
    @empid int output,
       
    @reason varchar(50) output,
       
    @depid int output
      
    AS
             
    select EmpID from mrBaseInf where  LoginID = @loginid
             
    if (@@RowCount<1)
                
    begin ----1
                   set  @reason ='noEmp'
                    
    set   @empid=0
                 
    end------1
             else 
                    
    begin  ----2        
        
         
    SELECT   EmpID  
          
    FROM mrBaseInf
                 
    WHERE (LoginID = @loginidAND (Password = @password )
                         
    if (@@RowCount<1)
                            
    begin -----3
                             set  @reason ='pError'
                              
    set   @empid=0
                             
    end-------3
                        else
                                      
    begin  ------4
                                      SELECT   @empid=EmpID ,@depid=DepID 
          
    FROM mrBaseInf
         
    WHERE (LoginID = @loginidAND (Password = @password and 

    AllowLogin
    =1)
                                            
    if (@@RowCount<1)
                              
    begin ---------6
                                set  @reason ='unAllow'
                                
    set   @empid=0
                               
    end------------6
                                   else
                                             
    begin -----7
                                             set  @reason ='access'
                                             
    end  ----------7
                                      end -----4        
                    end------2
     RETURN

     


    GO

    2、数据层
    public String[] Login(String loginid, String password) 
      {    
       String[] CheckLogin;
       SqlConnection myConnection 
    = new 

    SqlConnection(ConfigurationSettings.AppSettings[
    "dsn"]);
       SqlCommand myCommand 
    = new SqlCommand("sysEmpLogin", myConnection);
       
       myCommand.CommandType 
    = CommandType.StoredProcedure;

       SqlParameter parameterLoginID 
    = new SqlParameter("@loginid"

    SqlDbType.VarChar,
    50);
       parameterLoginID.Value 
    = loginid;
       myCommand.Parameters.Add(parameterLoginID);
       SqlParameter parameterPassword 
    = new SqlParameter("@password"

    SqlDbType.VarChar, 
    50);
       parameterPassword.Value 
    = password;
       myCommand.Parameters.Add(parameterPassword);
       SqlParameter parameterEmpID 
    = new SqlParameter("@empid"

    SqlDbType.Int, 
    4);
       parameterEmpID.Direction 
    = ParameterDirection.Output;
       myCommand.Parameters.Add(parameterEmpID);

       SqlParameter parameterReason 
    = new SqlParameter("@reason"

    SqlDbType.VarChar,
    50);
       parameterReason.Direction 
    = ParameterDirection.Output;
       myCommand.Parameters.Add(parameterReason);

       SqlParameter parameterDepID 
    = new SqlParameter("@depid"

    SqlDbType.Int,
    4);
       parameterDepID.Direction 
    = ParameterDirection.Output;
       myCommand.Parameters.Add(parameterDepID);

       myConnection.Open();
       myCommand.ExecuteNonQuery();
       myConnection.Close();

       
    string LoginID;
       LoginID
    =parameterEmpID.Value.ToString();
       
    string Result;
       
    string depid;
       
    if(parameterReason.Value.ToString ()=="access")
       {
        Result
    ="成功登录";
        depid
    =parameterDepID.Value.ToString();
       }
       
    else if(parameterReason.Value.ToString ()=="noEmp")
       {
        Result
    ="用户名错误";
        LoginID
    ="usererror";
        depid
    ="-1";
       }
       
    else if(parameterReason.Value.ToString ()=="pError")
       {
        Result
    ="密码错误";
        LoginID
    ="pwderror";
        depid
    ="-1";
       }
       
    else 
       {
        Result
    ="帐号被禁用";
        LoginID
    ="noacount";
        depid
    ="-1";
       }
       CheckLogin
    =new string []
          {
           LoginID,
           Result,
              depid
          };
       
    return CheckLogin;

     

      }

    3、调用
    private void btnlogin_Click(object sender, System.EventArgs e)
      {
       String strLoginID
    = username.Text .Trim ();
       String  strPassword 
    =password.Text .Trim ();
       
    string []str=new string[]{strLoginID,strPassword};
       
    if(!new DataBase().CheckParams(str))
       {
                           
        JScript.Alert(
    "您输入了非法字符!");
        
    return ;
       }
       EmpDB AloginUsr
    =new EmpDB();
       
       
    string strReason;
       
    string strUserID;
       
    string strValid;
       
    string[] NewLogin;   
       String[] strLoginflag 
    =AloginUsr.Login (strLoginID,strPassword);

       

    if(strLoginflag[0]=="usererror"||strLoginflag[0]=="pwderror"||strLogin

    flag[
    0]=="noacount")
       {
        strUserID 
    = username.Text .Trim ();
        strValid
    = "";
        strReason
    =strLoginflag[1];
        NewLogin
    =new string []
            {
             strUserID,
             DateTime.Now .ToString (),
             strValid,
             
    "",
             Request.UserHostAddress .ToString (),
             strReason
            };
        DbManagerLogininfo myclassfologin
    =new DbManagerLogininfo ();
        myclassfologin.insertLoginUser (NewLogin);
        Response.Write(
    "<script language=javascript>");
        Response.Write(
    "window.alert('");
        Response.Write(strReason);
        Response.Write(
    "');");
        Response.Write(
    "</script>");
       }
       
    else
       {
        Response.Cookies[
    "empint"].Value=username.Text;
        Response.Cookies[
    "empint"].Expires=DateTime.Now.AddDays(1);   

        strUserID
    =username.Text .Trim ();
        strValid
    ="";
        strReason
    ="";
        strReason
    =strLoginflag[1];
        
        NewLogin
    =new string []
            {
             strUserID,
             DateTime.Now .ToString (),
             strValid,
             
    "",
             Request.UserHostAddress .ToString (),
             strReason
            };
        DbManagerLogininfo myclassfologin
    =new DbManagerLogininfo ();
        myclassfologin.insertLoginUser (NewLogin);
        Session[
    "EmpID"]=Int32.Parse(strLoginflag[0]);
        Session[
    "username"]=username.Text;
        Session[
    "depid"]=strLoginflag[2];
                
           
    string tt="qminoa = window.open( '../index.aspx"+"'"  
          

    +",'','toolbar=no,menubar=no,titlebar=yes,directories=no,resizable=yes

    ,status
    =yes,fullscreen=no,scrollbars=yes,top=0;left=0,width=900,height

    =700');";
         Response.Write("<script language=javascript>");
         Response.Write(tt);
         Response.Write(
    "qminoa.moveTo(0,0);");
         

    Response.Write(
    "qminoa.resizeTo(screen.availWidth,screen.availHeight);

    ");    
         Response.Write("window.opener=null;");
         Response.Write(
    "window.close();");
         Response.Write(
    "</script>");
        
        
        
       }
      }
  • 相关阅读:
    CodeForces 916A Jamie and Alarm Snooze (水题)
    BZOJ 2440 [中山市选2011]完全平方数 (二分 + 莫比乌斯函数)
    BZOJ 4407 于神之怒加强版 (莫比乌斯反演 + 分块)
    HDU 1695 GCD (莫比乌斯反演)
    如何分析解决Android ANR
    Android网络编程系列 一 TCP/IP协议族之链路层
    Android网络编程系列 一 TCP/IP协议族之网际层
    Android网络编程系列 一 TCP/IP协议族之传输层
    Android网络编程系列 一 TCP/IP协议族
    Android网络编程系列 一 JavaSecurity之JSSE(SSL/TLS)
  • 原文地址:https://www.cnblogs.com/jasonduan/p/402281.html
Copyright © 2020-2023  润新知