服务器其实是一个, a.a.cn和b.a.cn其实就是同一主机
关键是要让实现Session的Cookie的Domain是基于域而不是主机应该就可以了,但在ASP.net中如何实现呢?

解决方案 »

  1.   

    1、问题描述:    系统S中有M1,M2,M3,M4四个模块,每个模块都是一个web应用。其中一个模块中设置Session后在其他模块中无法读取。2、问题原因:    一个WEB应用相当于一个站点,应用与应用之间不可能共享Session。3、解决方法:1)  将四个web应用包含在同一个解决方案中(注:调整.webinfo文件使解决方案能构正常运行)2) 新建一个web应用Main,该web应用包含在解决方案S中,并直接存放在S目录下(即与虚拟目录S相对应)。3) 在Main应用中添加其他四个应用的引用4) 重新生成Main应用,此时,与Main模块相关的M1、M2、M3、M4四个模块的dll将生成于S\bin目录下。5) 调整web.config文件删除M1、M2、M3、M4四个模块web.config中除AppSetting节以外的所有节。(也可删除四个模块中的web.config,只保留S目录下的web.config文件。)以下操作将影响开发环境6) 删除goble.acax删除M1、M2、M3、M4四个模块中的goble.acax文件。7) 删除M1、M2、M3、M4四个模块对应的虚拟目录8)大功告成
      

  2.   

    楼上的兄弟好像有点经验一样,我这里的情况是,这几个主机其实都是一个站点.
    只是URL上的路径不一样, 你说的办法好像就是把几个站点变成一个站点,
    和我的问题不太相干, 希望大家能帮助我一下!
      

  3.   

    ASP.NET 2.0 二级域名Forms验证模式下共享登陆状态 http://www.cnblogs.com/jzywh/archive/2007/09/23/902905.html
    如果你是Form验证的话那很简单.如果你不是Form验证,要改为Form验证也很简单。
      

  4.   

    真是我没看明白吗?
    前阵子震了几震都没来看了。另,我好像已经找到解决方案了,不过是基于WEB技术而不是ASP.NET的,
    回头再去看看的解答。