HttpContext.Current.Session.SessionID相关问题及备忘
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpContext.Current.Session.SessionID相关问题及备忘相关的知识,希望对你有一定的参考价值。
今天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相关问题及备忘的主要内容,如果未能解决你的问题,请参考以下文章