1 Session 特點:
(1)Session中的數據保存在服務器端;
(2)Session中可以保存任意類型的數據;
(2)Session默認的生命周期是20分鍾,可以手動設置更長或更短的時間
web.config 配置:
程序webconfig配置:
<system.web>
<sessionState mode="InProc" timeout="180"/>
</system.web>
timeout里面設置的是分鍾
Session 身份驗證的思路:
每個客戶端請求都會和服務器建立一個會話,會有一個唯一的SessionId, 客戶端在收到SessionId之后可以將seesionId保存(比如保存在cookie中),然后每次通過cookie的sessionId去驗證。
1、用戶向服務器發送用戶名和密碼。
2、服務器驗證通過后,在當前對話(session)里面保存相關數據,比如用戶角色、登錄時間等等。
3、服務器向用戶返回一個 session_id,寫入用戶的 Cookie。
4、用戶隨后的每一次請求,都會通過 Cookie,將 session_id 傳回服務器。
5、服務器收到 session_id,找到前期保存的數據,由此得知用戶的身份
缺點:
時間較短,需要服務器設置,
服務器掛了需要重新登錄
簡單使用:
public void LoginWithSession() { Session["User"] = new { Name="hnzheng",Passward="123" }; Session["UserInfo"] = new { Name = "hnzheng", Passward = "123" }; //保存session Id //Session.SessionID } //刪除全部 public string RemoveAllSession() { Session.Abandon(); return$"sessionId:{Session.SessionID}"; } //刪除單個 public string RemoveSingleSession() { if(Session["User"]!=null) { Session["User"] = null; Session.Remove("User"); } return $"sessionId:{Session.SessionID}"; }