91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用Session保存用戶狀態

發布時間:2021-10-29 16:27:23 來源:億速云 閱讀:218 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關如何用Session保存用戶狀態,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

網上購物已經成為現在生活不可缺少的一部分。我們上淘寶只是為了消費,今天換一個角度,用程序員的眼光看看淘寶。

如何用Session保存用戶狀態

如上圖:

情況一:當打開一些和賬戶有關的網頁,檢測用戶沒有登錄,系統自動會跳轉到登錄界面。

情況二:當檢測到已經有用戶登錄,頁面會自動跳轉到目的頁面。

問題:系統如何檢測用戶是否登錄,如何保存用戶的登錄狀態?

下面說說自己的理解:利用Session保存用戶狀態,

解決方案一:每個用戶都有一個Session對象相對應,當用戶想要跳轉到任意跟賬戶有關的界面(已買到的寶貝頁面),每個頁面加載的時候都要判斷Session對象保存的用戶狀態。

1. 登錄界面的代碼:

public partial class Login : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {         }         protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)         {             Session["UserFlag"] = false;//首先設置會話值UserFlage表示用戶是否登錄             if (UserVolidate(Login1.UserName, Login1.Password) == true)//調用自定義方法,驗證用戶是否登錄成功             {                 Session["UserFlag"] = true; //登錄成功                 e.Authenticated = true;                 Response.Redirect("Main.aspx"); //跳轉主界面             }             else{                 Response.Write("未登錄"); //否則提示未登錄             }         }         /// <summary>         /// 用戶登錄驗證         /// </summary>         /// <param name="userName">用戶名</param>         /// <param name="userPassword">用戶密碼</param>         /// <returns>bool</returns>         private bool  UserVolidate(String userName, String userPassword)         {             //連接數據庫             SqlConnection con = new SqlConnection("server=.;database=User;uid=sa;pwd=123456;");             con.Open();             SqlCommand cmd=new SqlCommand ("select * from UserInfo where UserName="+userName +" and Password="+userPassword );             int num=cmd.ExecuteNonQuery ();             if (num>0)             {                return true;             }             else            {                 return false;             }         }              }

2. 跳轉界面的代碼:(防止用戶通過URL直接跳轉到該界面,每次界面都要進行判斷)

public partial class Main : System.Web.UI.Page     {         //窗體加載         protected void Page_Load(object sender, EventArgs e)         {             //根據Session對象保存的用戶登陸狀態判斷用戶是否登錄             if (Session["UserFlag"].ToString () == "false")             {                 //如果未登錄,則直接跳轉到登錄界面                 Response.Redirect ("Login.aspx");             }         }     }

解決方案二:通過提供一個中介judge.aspx界面,每個跟賬戶有關的界面跳轉之前都跳轉到該界面,通過該界面加載的時判斷用戶的登錄狀態。

1. 登錄頁面代碼不變

2. judge.aspx頁面代碼:

public partial class judge : System.Web.UI.Page      {          protected void Page_Load(object sender, EventArgs e)          {              //對Session對象進行判斷用戶的狀態               if (Session["flag"].ToString()=="false")              {                  Response.Write("未登錄");              }               /*else              {                  Response.Redirect("Main.aspx");//加上這句話會造成死循環              }*/         }      }

3. 跳轉界面代碼:

public partial class Main : System.Web.UI.Page      {          protected void Page_Load(object sender, EventArgs e)          {              //跳轉頁面必須經過判斷,防止直接登錄該頁面,而不進行登錄。              Server.Execute("judge.aspx");//通過執行Server對象的Execute方法          }      }

總結:兩種解決方案原理相同,通過Session對象保存用戶狀態,不同頁面都可以通過訪問該用戶的Session對象的會話值來判斷該用戶的狀態。解決方案二只是簡化了判斷過程,通過Server對象的Execute方法先執行中介判斷界面,然后回歸到原程序執行順序。

補充:

Server對象

語法:Server.Execute(path)

用途:這個方法是 IIS5.0 新增的功能,用途類似程序語言中的函數調用,也就是說,您可以在 ASP 程序中使用 Server.Execute(path)方法調用 Path 指定的 ASP 程序,待被調用的程序執行完畢之后再返回原來的程序,繼續執行接下來的指令。

Session對象

在網站中,每個新訪問的用戶都將產生自己的session(回話)對象。這個session對象在服務器端進行管理,只能為當前訪問的用戶服務。如果另一個用戶進入網站,也將擁有自己的session對象,兩個用戶的session對象即使同名,也不能共享。

上述就是小編為大家分享的如何用Session保存用戶狀態了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜昌市| 乌兰县| 耒阳市| 许昌市| 文水县| 山西省| 咸阳市| 城口县| 获嘉县| 永吉县| 比如县| 石景山区| 洛川县| 罗源县| 峨眉山市| 广丰县| 淳化县| 和林格尔县| 延长县| 青铜峡市| 灯塔市| 西充县| 南岸区| 斗六市| 汾阳市| 新巴尔虎左旗| 大英县| 遂宁市| 桂东县| 菏泽市| 杨浦区| 新巴尔虎右旗| 烟台市| 葫芦岛市| 荃湾区| 娄底市| 抚远县| 赫章县| 桐乡市| 新巴尔虎左旗| 通化县|