Session 身份验证
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}"; }