使用Access存储Session,遇到了SessionId问题?
浏览器访问WebPage时,虽然使用的地址不变,但是端口会发生变化,用刷新页面作测试,2分钟内刷新,用户的端口不变,超过2分钟,那么端口会发生变化。
Http1.1中说,Connection报头中有持久性连接控制,默认情况下,所有Http1.1连接都认为是持久性的,除非某个请求或者响应包括了一个Connection:close报头。这个持久性,指的好像不是维持相同的Tcp端口。
如果用Http协议维持会话,那么需要给客户端发送标记符SessionId,客户端再次访问时,提供这个标记,好被Server识别。这个标记存在形式是cookie或者查询字符串,要手工处理Session,需要一些功能来实现,带来如下问题:
要实现Access存储Session,那么WebApp的配置文件的
<SessionState>
mode="Off":关闭用户Session管理;
因为不了解IIS的Session管理机制。
那就需要知道怎样处理标记用户请求的SessionID,关于SessionId还在查资料,那位对此有经验,请给与支持。
SessionID:msdn中说,是长度为120Bit的ASC字符,可以在Url中使用,但是经过测试,
//生成SessionId
string id=Session.SessionID;
//显示Id的内容及长度
Response.Write(id+":"+id.Length.ToString()+"<br>");
byte[] by=System.Text.Encoding.ASCII.GetBytes(id);
Response.Write(by.Length.ToString()+"<br>");
使用Session.SessionID生成的SessionId长度为24个ASC字符,即192Bit,应该是原始的SessionID被加密了,长度发生了变化。
Http1.1中说,Connection报头中有持久性连接控制,默认情况下,所有Http1.1连接都认为是持久性的,除非某个请求或者响应包括了一个Connection:close报头。这个持久性,指的好像不是维持相同的Tcp端口。
如果用Http协议维持会话,那么需要给客户端发送标记符SessionId,客户端再次访问时,提供这个标记,好被Server识别。这个标记存在形式是cookie或者查询字符串,要手工处理Session,需要一些功能来实现,带来如下问题:
要实现Access存储Session,那么WebApp的配置文件的
<SessionState>
mode="Off":关闭用户Session管理;
因为不了解IIS的Session管理机制。
那就需要知道怎样处理标记用户请求的SessionID,关于SessionId还在查资料,那位对此有经验,请给与支持。
SessionID:msdn中说,是长度为120Bit的ASC字符,可以在Url中使用,但是经过测试,
使用Session.SessionID生成的SessionId长度为24个ASC字符,即192Bit,应该是原始的SessionID被加密了,长度发生了变化。
浙公网安备 33010602011771号