session 丢失及解决办法(FRAMESET)

来源:互联网 发布:手机淘宝怎么看回收站 编辑:程序博客网 时间:2024/06/08 06:29

 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="http://111.111.111.111/testFrame.asp"></FRAME>
<FRAME src="about:blank"></FRAME>
</FRAMESET>


</HTML>
     
 
3. on remote computer,like following example create TestFrame.asp: <HTML>

<BODY>

<%

Response.write "Session var is " & Session("TestVar")
Session("TestVar") = "Hello, world!"

%>

<BODY>

<FORM METHOD="POST">
<INPUT type="submit" value="Print TestVar">
</FORM>

</BODY>

</HTML>
     
 
4. 将移动到 TestFrameset.asp,然后单击 窗体提交 。
请注意,尽管它应该包含 Session("TestVar") 项打印为空,提交后的"Hello,世界 !"。

 

 

参考:

http://support.microsoft.com/kb/323752/zh-cn

 

 

 

 

 

原创粉丝点击