首页 > Web开发 > 详细

HttpContext.Current.Session.SessionID相关问题及备忘

时间:2016-01-25 09:55:55      阅读:275      评论:0      收藏:0      [点我收藏+]

今天Tony提到说我们系统中会利用如下代码来判断用户是否过期。

if (string.IsNullOrEmpty(UserContext.ConnectionSessionId))
{
       LogUIFactory.Current.Debug(HEARTBEAT_DISCONNECTION_LOG_2);
       timeout = true;
}

但是我做实验发现,在page load的时候,打印出来的sessionid是一直在变化的:

 protected void Page_Load(object sender, EventArgs e)
{
     Response.Write(HttpContext.Current.Session.SessionID);
}

上面这代码很好解释,因为http连接是无状态的,所以每次请求过来,sessionid会变化,不足为怪。

但是如果稍微加点料,就不一样了:

protected void Page_Load(object sender, EventArgs e)
{
    Session["tst"] = "222";
    Response.Write(HttpContext.Current.Session.SessionID);
}

上面打印出来的sessionid是一直不会再变化的。

看来如果赋值了之后,session实例会被创建,然后其id就被固定下来了。

 session这东西几年前在用,最近几年写程序,一直在用cookie,都差点忘记了session这点了。今天看到老系统用的仍然是这个,并且发现了其中的这点,感觉收获还挺大的,至少可以再解决框架中的一个技术难点。

HttpContext.Current.Session.SessionID相关问题及备忘

原文:http://www.cnblogs.com/scy251147/p/5156606.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!