框架中session为空的解决办法

来源:互联网 发布:ise软件win8 编辑:程序博客网 时间:2024/05/16 13:51

     公司要给一个老的的asp网站加一些功能,开始我不知道是asp的网站用asp.net实现的,后来又不想改了,就把asp.net的页面以http://xxx的形式加入到了asp网站的菜单中,麻烦的是用户要登录两次,明文传送用户名和密码不太保险,加密又懒了的搞,只好让用户登录两次了,可是发现asp.net的页面登录后session取不到,不在框架中是正常的,查了很久,发现了原因:

【Iframe丢Session的原因】:session是客户端和服务器端共同认证的,客户端存储标识,通过附加在页面的头发送给服务器端,服务器进行识别,如果符合条件就可以获得相应的session操作权。
但如果页面是来自框架的,而框架的父页和框架不是一个站点的话,客户端默认是禁止向页面附加头信息的,这样服务器端就无法识别客户端框架里面的页面,自然不能操作Session。

【问题的根源】:不发送头信息

【解决办法】:向页面附加头信息

【很值钱的一句整合代码,可以解决很多跨站整合问题,IE6测试通过,Oh Yes!】
Response.AddHeader("P3P", "CP=CAO PSA OUR")

原创粉丝点击