ASP.NET -- WebForm: Session的使用 ...
ASP.NET -- WebForm -- Session的使用
Session是伺服器端狀態保持機制。
1. Test4.aspx文件與Test4.aspx.cs文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test4.aspx.cs" Inherits="Test4" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="獲取Session的值" onclick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="設置Sessions" onclick="Button2_Click" /> </div> </form> </body> </html>View Code
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Test4 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (Session["UserName"]!=null) { Response.Write(Session["UserName"]); } else { Response.Write("Session中沒有UserName的值"); } } protected void Button2_Click(object sender, EventArgs e) { Session["UserName"] = "TestUser"; } }View Code
2. 伺服器在記憶體中存儲Session數據時,伺服器會開闢Session的存儲區域,這個區域再分相應的存儲單元,並且每個單元加上一個編號,這個編號叫SessionID。
SessionID以cookie的形式返回給瀏覽器。Session預設的過期時間是20分鐘。
再次訪問頁面時,瀏覽器會將SessionID通過請求報文發送給伺服器端。
3. 由於Session數據是存儲在伺服器的記憶體中的,不要賦值太大的數據,防止占用記憶體過大。