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