现在需要在一个画面上打开另一个画面,在新的画面要生成一个新的session,这样这两个画面上就有两组session。我是用VB.NET做后台程序。这个问题让我焦头烂额,寻求各位帮助。

解决方案 »

  1.   

    那就建一个ArrayList
    Session存ArrayList
      

  2.   

    我要的是两组session,相当于分别打开两个ie,访问同一个站点,这时就会有两个会话。
      

  3.   

    我试过利用showModalDialog,然后在其中打开新的画面的方法,形成了新的session,这好像是ie的漏洞,但是这个漏洞有时候可以,有时候不行。搞的很郁闷。
      

  4.   

    这种解决方案好像不妥,最好不要用SESSION,如果要用也没有必要再生成一个,可以用其它方法。。
      

  5.   

    不能这样用Session!……
    这样会导致混乱。
    自己重写SessionState逻辑,利用URL重写来传递SessionID。
      

  6.   

    ASP.NET 的SessionID存在Cookies["ASP.NET_SessionId"] 中,在对服务器发出请求前改写这个COOKIE值便会更改了会话ID,如果你想要实现你说的功能,可能需要在A Session中记录B Session的值,在B Session中记录A Session的值, 具体我也没实现过,但在WEBSERVICE时做过类拟的用法
    http://blog.csdn.net/tins/archive/2006/03/24/637695.aspx
    中获许对你有些帮助
      

  7.   

    A Session中记录B SessionID的值,在B Session中记录A SessionID的值
      

  8.   

    感谢各位,楼上的兄弟,我把问题仔细的说给你听。
    A1(主画面)→ B1(画面1)→A2(新主画面)A2(新主画面)→ B2(画面1)....An(新主画面)→ Bn(画面1)要实现的是,这时候有n个ie窗口,而且这n个ie窗口的处理互不相干。
    各位大虾,有没有什么好的办法。
      

  9.   

    楼主仅仅为了跟踪比较吧?那就应该用ASP.NET提供的Trace相关功能来做,而不是在同一时间用两个Session来做。你可以通过Trace.axd来访问过往的Trace数据,可以在页面的关键位置添加Trace语句来输出Trace信息。
      

  10.   

    谢谢楼上,又学到一招。但你说的这个方法要实现非常复杂,工作量还无法计算。
    其实对我来说最好的办法就是重新打开ie再访问一遍。这样我就不需要考虑session的问题。
    但是客户要求是在已经打开的画面上放一个链接,通过这个链接新打开一个主画面(每个打开的画面都可以进行业务操作,自己也很疑惑,目前原因不明),这样就不需要重复登录。 
    考虑以上,我想在新打开主画面的时候重新生成session。
    如果在客户端通过操作可以实现打开一个ie,再让这个ie自动访问某个链接地址的操作也可以。
    不知道大家都理解了没有。
      

  11.   

    报歉,上面说的有一个遗漏:“如果在客户端通过操作可以实现打开一个ie,再让这个ie自动访问某个链接地址的操作也可以。 ”打开新的画面的时候要让session中断。