Session失效之 IE iframe cookie问题(p3p)

时间:2023-03-09 08:47:43
Session失效之 IE iframe cookie问题(p3p)

项目中,在做门户系统时,使用了iframe嵌套展示各个子系统的页面,其中有个页面在ie8下,始终无法正常登陆。

后来项目经理分析,应该是iframe跨域导致,赶忙查看了连接地址,还真是一个跨域的页面。

于是想到了p3p方案(网上查到了一些设置):

只需要设置 P3P HTTP Header,在隐含 iframe 里面跨域设置 cookie 就可以成功。

(‘在隐含 iframe 里面这里应该指的是iframe的src那个页面吧,不过我是在主页面和嵌套页面都设置了,有机会再确认下

ASP直接在头部加了头部申明,测试有效。
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>

PHP的话,应该是如下写法:
header('P3P: CP=CAO PSA OUR');

ASP.NET的话
通过在代码上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服务中将ASP.NET State Service 启动。

JSP:
response.setHeader("P3P","CP=CAO PSA OUR");

我的jsp设置片段:

<%@ page contentType="text/html; charset=utf-8" isELIgnored="false"%>
<%
String path = request.getContextPath();
response.setHeader("P3P","CP=CAO PSA OUR");
%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
  ... ...