大家好!我这边的情况描述如下:
  用内网IP(10.200.60.57)来访问一切正常可以正常登陆管理后台;而如果用配置的外网域名来访问(http://nscl.szns.gov.cn/admin/login.jsp ),则刚登录成功就出错!检查跟踪后发现是Session的问题,外网访问从一个验证页跳转到后台管理主页面后Session就为null了!我们这边测试了也配了外网的IP却不出现这种情况,据有些技术人员指导我说可能是防火墙的问题,但防火墙只能是阻止访问而不能阻止登陆啊。
  客户的运行环境 JDK1.5 Sun JES9.1.2中间件WEB服务器,Oracle10g数据库。客户那边内外组网方式不一样,网关也不一样,导致了Session的域改变。  请大虾们帮帮忙,一起找找问题的原因!谢谢了!

解决方案 »

  1.   

    数据放入session是在后台执行的,如果都能通过验证说明经过后台的程序处理session是有值的,那就只能是页面跳转时传值失败吧,或者你在管理主页面引用session时弄错了,和内网外网有什么关系就不知道了...关注
      

  2.   

    是不是你用的服务器在默认情况下session是依靠客户端的cookie来实现的。但如果客户端浏览器不支持cookie或将cookie功能关闭,那就就意味着无法通过cookie来实现session了,你的浏览器认为内网是安全的,允许cookie而对外网是禁止的.查看下你测试的机器的cookie设置.
      

  3.   

    你的登陆session值夸域被阻止了,导致为空。
      

  4.   

    可能客户端的cookies的安全级别比较高
      

  5.   

    什么啊,怎么都乱回答呢? 你可以用工具看一下客户的http请求和响应情况,并且在服务器把sessionid打出来,看是不是sessionid不致,导致session丢失,才让你的程序找不到session里的内容。 这个值如果被firewall或者proxy阻止或者修改了,自然就出现这个问题。
      

  6.   

    试试 把你internet选项里的cookie该成中高
      

  7.   

    还是建议楼主一步步调试一下 看在外网
    的情况下 session的值 和在内网情况下
    的值的区别
    原则上 如果不是做网络通信服务的话 
    外网和内网应该不会有很大的问题的
      

  8.   

    同意你的分析,我也测试了,是不同的Sessionid,但请问怎么解决呢??
      

  9.   

    两次sessionId当然不一样,一样不就没问题了.
    就因为上次访问的sessionId没有带回去,所以服务器会生成个新的sessionId给你.设置你客户那边的cookie选项,要不就urlrewrite把sessionId带过去.
      

  10.   

    设置你客户那边的cookie选项
    指的什么?
      

  11.   

    应该是浏览器端的Cookie设定问题