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}";
}
