目前来说,据我的认识貌似必须使用iframe 提交表单的方式,ajax方式下无法写cookie(get请求除外)。 原理上很简单,但实现起来还是走了不少弯路,各种浏览器处理方式不一样也增加了调试的难度;几经曲折终于找到了一个相对合理的实现。 上代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <script language="javascript" type="text/javascript" src="http://t.zoukankan.com/jquery-1.4.1.min.js"></script> <script language="javascript" type="text/javascript"> $("#isso").remove(); //跨站表单 $('body').append($frame); //延迟执行 }); </script> </html> 调试情况说明: 1.chrome浏览器下成功通过(这点很赞!) 2.ie浏览器cookie被阻止,无法传递session,导致无法登录 问题原因,ie浏览器支持的P3P协议默认阻止第三方无隐私安全声明的cookie。 1) IIS的服务器 增加一个网站http头来解决问题 输入头内容:CP=CAO PSA OUR 2) jsp页面: <% 3. https 跨域证书错误提示导致无法通过,解决办法: 1) 将证书安装,选择存储区域“受信任的根证书颁发机构” 另外,对于过期的证书,目前还没有办法,建议重新生成证书。 相关文件下载跨站单点登录.7z |
跨域单点登录实现(使用iframe)
2011-12-26 18:15
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)