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

  

 

posted @ 2020-04-19 16:22  谁说程序猿很猥琐  阅读(1848)  评论(0编辑  收藏  举报