`

session 丢失及解决办法(FRAMESET)

阅读更多

 1 问题描述

环境:两台服务器(A服务器,B服务器)

应用:两个应用(C系统,D系统)

其中C系统部署在A服务器,D系统部署在B服务器

D系统是要从C系统登录

D系统要从C系统Session取两个值到D系统session中

 

症状
如果您实现的 FRAMESET 其框架指向您的合作伙伴或在您的网络,内部网络上其他 Web 站点但使用不同的顶级域名,您可能会注意到在 Internet Explorer 6 中您尝试在这些框架中设置任何 Cookie 似乎丢失。 这是最常遇到作为一个 Active Server Pages (ASP) 或 ASP.NET Web 应用程序中的会话状态的丢失。 您尝试访问您希望存在,而返回一个空白字符串 Session 对象中的变量。

您还了解一个框架上下文中的这一问题如果您的网页使用域名系统 (DNS) 名称和 Internet 协议 (IP) 地址的使用之间交替。

 

2 问题解决

 

添加一个 response.addHeader("P3P","CP=CAO PSA OUR");

在D系统有这样一个logon .jsp

  1. <%
  2.             String userid = (String) request.getParameter("userid");
  3.             String password = (String) request.getParameter("password");
  4.             session.setAttribute("userid", userid);
  5.             session.setAttribute("password", password);
  6.             System.out.println("userid" + userid);
  7.             System.out.println("password" + password);
  8.             out.print("Session var is " + session.getAttribute("TestVar"));
  9.             session.setAttribute("TestVar","Hello, world!");
  10.             response.addHeader("P3P","CP=CAO PSA OUR"); 
  11. %>

 在C系统只要调用

 

  1. <iframe src="http://128.128.1.1:8080/Test/logon.jsp&userid=?&password=?"></iframe> 

将userid和password取出来放进去即可。

 

如果没有 response.addHeader("P3P","CP=CAO PSA OUR"); 将会导致session丢失,在D系统取不到session值,虽然已经赋值进去

 

 

3 问题重现

 

重现该问题的步骤
1. 创建一个文件名称 TestFrameset.asp。
2. 点框架的一个文件到另一台计算机在您的网络上的 IP 地址的: <HTML>

<FRAMESET ROWS="100%,*">
<FRAME src=" 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics