用服務器控件作登陸

首先得創建一個母模板頁Master,創建一個服務器控件,把寫好的HTML代碼放到服務控件裏面。再建立一個WEB應用程序,把這個服務器控件給放到web應用程序裏面來。web

首先得考慮到當前這個用戶有沒有登陸,Session裏面有沒有存儲該用戶的信息數據庫

這個要在WEB應用程序裏面的Page_load裏面寫數組

  
  
  
  
  1. //if (Session["User"] != null) 
  2.            //{ 
  3.            //    Response.Write(((Model.User)Session["User"]).LoginId); 
  4.            //} 
  5.            //else { 
  6.            //    Common.MD5File.GoToPage(); 
  7.            //} 

在服務器控件Page_load裏面寫這個是Post提交還Get訪問的服務器

  
  
  
  
  1. //判斷用戶是否Post提交的 
  2.             if (IsPostBack) 
  3.             { 
  4.                 CheckUserLogin();//調用這個方法 
  5.             } 
  6.             else 
  7.             { 
  8.                 //讀取用戶電腦中的cookie文件,而且進行內容判斷 
  9.                 CheckCookie(); 
  10.             } 

當是GET訪問的時候,要記錄該用戶的Cookie,cookie

  
  
  
  
  1. private void CheckCookie() 
  2.        { 
  3.            //判斷cookie中是否有值,是否被修改 
  4.            if (Request.Cookies["cookieName"] != null && Request.Cookies["cookiePwd"] != null
  5.            { 
  6.                BLL.UserManager bll = new BLL.UserManager(); 
  7.                string name = Request.Cookies["cookieName"].Value; 
  8.                //根據cookie中存儲的用戶名找cookie 
  9.                Model.User user = bll.GetModel(name); 
  10.                if (user != null
  11.                { 
  12.                    string textPwd = Request.Cookies["cookiePwd"].Value; 
  13.                    string enctryPwd = Enctry(user.LoginPwd);//將數據庫中的密碼進行加密 
  14.                    //將cookie中存儲的密碼與數據庫中密碼進行比較 
  15.                    if (textPwd == enctryPwd) 
  16.                    { 
  17.                        //注意不要忘記建立Session 
  18.                        Session["User"] = user; 
  19.                        //調用登陸判斷  
  20.                        GoToCookiePage("登陸成功"); //這個方法在後面會解釋的
  21.                    } 
  22.                    else 
  23.                    { 
  24.                        //Response.Write("密碼錯誤"); 
  25.                        //密碼被修改過刪除cookie文件  給這個Cookie設置過時時間。
  26.                        Response.Cookies["cookieName"].Expires = DateTime.Now.AddDays(-1); 
  27.                        Response.Cookies["cookiePwd"].Expires = DateTime.Now.AddDays(-1); 
  28.                    } 
  29.                } 
  30.                else 
  31.                { 
  32.                    Response.Write("用戶不存在"); 
  33.                } 
  34.            } 
  35.        } 
  36. //當這個用戶第一次的時候,尚未
  37.     
        
        
        
    1. public void CheckUserLogin() 
    2.        { 
    3.            //接收用戶輸入的信息值 
    4.            string name = Request.Form["txtName"]; 
    5.            string pwd = Request.Form["txtPass"]; 
    6.            string msg = string.Empty;//給用戶登陸狀態賦值爲空 
    7.            Model.User user = null;//建立一個實體對象 
    8.            BLL.UserManager bll = new BLL.UserManager(); 
    9.            //定義一個方法,參數爲用戶賬號,密碼,登陸狀態,和當前登陸的用戶賬號 
    10.            bool b = bll.GetAjaxCheckUserLogin(name, pwd, out msg, out user); 
    11.            //當這個方法爲true的時候 
    12.            if (b) 
    13.            { 
    14.                //就查看Session裏面的有沒有這個用戶賬號 
    15.                Session["User"] = user; 
    16.                //表示用戶選擇複選框  當點擊這個複選框的時候,說明要記錄當前這個用戶。建立一個Cookie 
    17.                if (!string.IsNullOrEmpty(Request.Form["CheckedMe"]))//當Cookie裏面沒有用戶賬號的時候 
    18.                { 
    19.                    //建立cookie  保存用戶賬號與密碼 
    20.                    HttpCookie cName = new HttpCookie("cookieName", name); 
    21.                    HttpCookie cPwd = new HttpCookie("cookiePwd", Enctry(pwd));//密碼須要加密的 
    22.                    cName.Expires = DateTime.Now.AddDays(3);//定義這個Cookie的存活時間 
    23.                    cPwd.Expires = DateTime.Now.AddDays(3); 
    24.                    Response.Cookies.Add(cName);//把這個用戶的Cookie保存起來 
    25.                    Response.Cookies.Add(cPwd); 
    26.                } 
    27.                GoToCookiePage(msg);//轉向到受保護的頁面 
    28.            } 
    29.            else 
    30.            { 
    31.                Response.Redirect("/ShowMsg.aspx?msg=" + Server.UrlEncode(msg) + "&txt=" + Server.UrlEncode("跳轉到登陸頁面") + "&url=/member/UserLogin.aspx"); 
    32.            } 
    33.        } 
    34. //取得用戶的密碼進行加密
    35.       
            
            
            
      1. private string Enctry(string pwd) 
      2.       { 
      3.           return Common.MD5File.GetUserPwdMD5((Common.MD5File.GetUserPwdMD5(pwd))); 
      4.       } 
      5.       /// <summary> 
      6.       /// 定義的是一個用戶登陸成功的時候,轉向的受保護的頁面,參數爲登陸的狀態 
      7.       /// </summary> 
      8.       private void GoToCookiePage(string msg) 
      9.       { 
      10.           //當沒有這個登陸的時候,跳轉的時候帶着受保護頁面的Url地址Request.QueryString["returnUrl"]; 
      11.           if (!string.IsNullOrEmpty(Request.QueryString["returnUrl"])) 
      12.           { 
      13.               Response.Redirect(Request.QueryString["returnUrl"]); 
      14.           } 
      15.           else 
      16.           {                 
      17.               Response.Redirect("/ShowMsg.aspx?msg=" + Server.UrlEncode(msg) + "&txt=" + Server.UrlEncode("跳轉到首頁") + "&url=/Default.aspx"); 
      18.           } 
      19.       } 
      20. //在邏輯判斷層來判斷這個用戶的用戶名密碼狀態和當前這個用戶
      21.         
                
                
                
        1. public bool GetCheckUserLogin(string name, string pwd, out string msg, out Model.User user) 
        2.        { 
        3.            DAL.UserServices dal = new UserServices(); 
        4.            user = dal.GetModel(name); 
        5.            //當這個用戶賬號不爲空的時候 
        6.            if (user != null
        7.            { 
        8.                //判斷這個用戶的狀態 
        9.                if (user.UserState.Name=="正常"
        10.                { 
        11.                    //來比較傳過來的參數與數據庫裏面的密碼 
        12.                    if (user.LoginPwd == pwd) 
        13.                    { 
        14.                        msg = "登陸成功"
        15.                        return true
        16.                    } 
        17.                    else 
        18.                    { 
        19.                        msg = "用戶密碼賬號錯誤"
        20.                        return false
        21.                    } 
        22.                } 
        23.                else { 
        24.                    msg = "用戶沒激活"
        25.                    return false
        26.                } 
        27.            } 
        28.            else 
        29.            { 
        30.                msg = "用戶不存在"
        31.                return false
        32.            } 
        33.        } 
        34. //MD5加密
        35.           
                    
                    
                    
          1. public static string GetUserPwdMD5(string pwd) 
          2.        { 
          3.            //建立一個MD5加密的對象 
          4.            MD5 md5 = MD5.Create(); 
          5.            //建立一個字節數組,把傳過來的密碼進行加密 
          6.            byte[] buffer = Encoding.UTF8.GetBytes(pwd); 
          7.            
          8.            byte[] pwdMd5=md5.ComputeHash(buffer);//把這個字節數組存放到這個md5的ComputeHash(); 
          9.            StringBuilder sb = new StringBuilder();//建立一個拼接字符串對象。 
          10.            //循環遍歷這個字符串 
          11.            foreach (byte b in pwdMd5) 
          12.            { 
          13.                sb.Append(b.ToString("x2"));//轉成16進制的字符串 
          14.            } 
          15.            return sb.ToString(); 
          16.        } 
          17.        /// <summary> 
          18.        /// 當要訪問一個受保護的須要登陸的頁面的,要轉向登陸頁面,登陸成功的時候帶着上一訪問的受保護的頁面 
          19.        /// </summary> 
          20.        public static void GoToPage() 
          21.        { 
          22.  
          23.            HttpContext.Current.Response.Redirect("/member/userLoginIndex.aspx?returnUrl=" + HttpContext.Current.Request.Url.ToString()); 
          24.        } 
相關文章
相關標籤/搜索