学习session

  刚刚学习.net,菜鸟一只 ,希望大家多多关照,有问题留言多多帮助我,谢谢

           对于session用法很简单,之前一直用也没理解其工作原理,今天查查资料才对他明白了一点点,写出来

          1,可以帮助像我一样的同学,2.留作日后参考,3,很重要(给我留作学习生涯的点点回忆)


begin:

          一个session就是我们平常说的一个会话,用法:Session["key"]=value;

          key:我们自己给他创建的名称, 

          value:赋给session的值,

      1.当用户创建了一个session时,此sesion的信息会保存在服务器的内存(如果mode=inproc)里,(由于内存有限,所有易丢失就是session特点之一,)

服务端此时发送给客户端一个sessionID来区别于别的用户信息(每个用户的信息都在服务端的session[key]中,sessionid来区别每一个用户),SessionID将保存在客户端的cookie里,

当下一次用户请求时,服务端会检查请求里的sessionid,然后在内存中遍历搜索,如果有将继续操作,如果session[key] = null,说明session已过期,跳转的登录页面,

    2.session的过期时间,当设置了session过期时间为10分钟时,此时在服务端将会有一个类似倒计时的东西来计算session的过期时间,如果过了10分用户没有再请求服务器,

     这个回话就结束了,也就是session过期了。期间,如果用户不断的发出请求。服务端每次接受到请求时都会重新计算session时间。但发起请求的操作包括但不限于:刷新页面,提交表单,删除添加等。
  

这段代码就是设置session在web.config中的<system.web>节点下

< sessionState mode="Off|InProc|StateServer|SQLServer"         服务端保存session的位置  //关闭|进程中|状态服务器|数据库
              cookieless="true|false"                                              客户端保存sessionID的位置  false用cookie保存,true用cookieless保存(不要cookie保存的配置下面将会提到,)
              timeout="number of minutes"                                     过期时间,单位分钟,默认20分钟
              stateConnectionString="tcpip=server:port"                当mode = stateserver是这个属性是必须的。服务器地址:端口号,
              sqlConnectionString="sql connection string"               当mode= sqlserver 是这个属性是必须的
              stateNetworkTimeout="number of seconds"                设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的
/>  

如果那有不正确的地方,希望前辈指正。谢谢

 

 

 

 

         

posted @ 2012-11-06 10:08  Mountains  阅读(145)  评论(0编辑  收藏  举报