HTTP协议是无状态的,因此,有些应用需要保持状态,就很难实现,比如购物车,单点登录,都是需要在服务器上保持用户选购的产品,或者登录信息。但正因为HTTP协议是无状态的,用户的每一个请求都被看成无关的,那ASP.net如何知道某一请求是哪一个Session呢?
百思不得其解,请高手指点迷津!
谢谢!

解决方案 »

  1.   

    通过Cookie保存,每个用户都会有唯一的SessionID,第一次请求的时候客户端从服务器获得这个ID,以后每次请求回发送这个ID到服务器,服务器就知道这个用户对应那个Session了
      

  2.   

    fancyf(凡瑞) :你好!
    第一次请求时客户端取到此ID后,保存在什么地方?
    如果我打开多个网站,那每一个都会有一个sessionID,页面如何获取属于自己的SessionID?
    请解答。谢谢!
      

  3.   

    保存在客户端的Cookie中,由浏览器来维护
    每个网站的Cookie是单独保存的,不互相影响
    比如
    www.abc.com有一个SessionID,由浏览器保存在www.abc.com的Cookie集合中

    www.def.com有一个SessionID,由浏览器保存在www.def.com的Cookie集合中
    当浏览器向www.abc.com请求网页的时候,就会向www.abc.com发送www.abc.com的Cookie集合中的内容,其中包括SessionID;浏览www.def.com的网页也会发送他自己的Cookie,与www.abc.com无关