对于IE,如果B窗口是由A窗口派生的(所谓派生是由连接、新建等方式产生),那么A和B属于同一个webbrowser实例,这样当然公用一个session;
如果你启动一个新的实例,就是重新启动一个新的IE浏览器(通过桌面上、图标、或者命令行等),那么就会不公用session??
问题: 有什么方法能不能公用这个Session呢

解决方案 »

  1.   

    session在没过期之前,生存周期就在浏览器,所有浏览器关闭时,session失效
    session没有办法不公用,只在当前页面用可以使用ViewState
      

  2.   

    基于web的应该程序是一种无状态的,
    可以这么简单的理解下:
    当一个用户打开IE对网页进行浏览,这时便建立了一个状态,
    当用户把IE关闭时,此状态也就随之丢失,
    如果像你所说的在桌面从新打开一个IE,
    对于服务器来,为视为另一个状态,与刚才打开的无关.
    Session只是保存一个状态的里的数据,
    对于另一个状态也就是会产生另一个Session了,
    它是不具备跨状态的能力.
      

  3.   

    直接公开此方法是肯定不行的,
    你可以试试Application
    此方法是可以对整个应用程序生效
    但有个问题是,一个程序只能拥用一个Application
      

  4.   

    也可以通过url传session值过去,总的还是建议cookies
      

  5.   

      如果你新建了个新打开一个IE 就相当于又建一个session  它们是不能共用的..
      

  6.   

    用Session是不行了,他是按照IE进程区分的,不能共享,可以用Cookies实现。
      

  7.   

    使用COOKIE,或者记录一下IP(短时间内 IP相同可看做是一个Session),不知行不