Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4734666
  • 博文数量: 206
  • 博客积分: 5240
  • 博客等级: 大校
  • 技术积分: 3224
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 21:40
文章分类

全部博文(206)

文章存档

2013年(13)

2012年(8)

2011年(33)

2010年(152)

我的朋友

分类: 系统运维

2010-09-27 22:59:38

首先说明原理:

  系统是认一个一个程序范围的,一般来说,一个IE默认为一个程序范围.
  框架因为有了跨域的内容,所以它首先默认的是框架程序本身的程序范围,这样使得框架内的程序范围得不到确认.
  为了让这个IE默认为框架内的程序范围,所以我使用了多次跳转.
  首先,跳出本框架,进入一个无框架的需要session值的网站页面(就叫它B服务器的页面),并在这个页面中生成一个session以便系统自动生成一个sessionID,然后又跳回到有框架的页面.因为系统已经为这个IE生成了一个sessionID,所以只要不关掉这个IE,系统一直以为这个IE是本程序范围的.这样,再次生成的session值就得以在这个ID中生存下来.
  也就达到了骗过系统的目的.
  再补充一点,二次跳转使用了不同的方式,原因是我需要把框架外的信息丢弃,而要保存框架内的信息.
  而不同的跳转方式会丢弃或保存跳转前的信息的。
  程序实现方式:
  文件1:
  框架文件:index.htm(运行在服务器A上)
  

  
  
  奇豪门业
  
  
  
  
  <br style="line-height: normal; ">  <body></font></p><p style="line-height: normal; "><font size="4" style="line-height: normal; ">   <p>此网页使用了框架,但您的浏览器不支持框架。</p></font></p><p style="line-height: normal; "><font size="4" style="line-height: normal; ">   <script type="text/javascript" src="/js/jquery.qqFace.js"></script> </body><br style="line-height: normal; ">  
  

  

  文件2:index.asp (运行在服务器B上,作用跳转和生成sessionID)
  
  <%
  if session("xm2")="" then
  session( "xm2")="eee"
  '上面这一句的目的只是为了使用session,让系统为这个IE生成一个sessionID,并且判断一下是不是已经跳转过,免得引起死循环。
  %>
  
  <%
  ,上面这一句是回到框架,注意:只能用上面这个跳转的方法,别用下面的跳转方法。
  else
  Response.Redirect "index2.asp"
  '上面一句才是真正地跳转运行服务器B上的程序!注意:也只能用这方法跳!
  end if%>

  经过以上的跳转,本IE已经有了服务器B上的sessionID,也就是说,框架虽然是在服务器A上的主框架运行,但它可以确保服务器B上的session不丢失,达到跨域运行的目的。

阅读(764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~