请教关于Yale CAS单点登陆的问题

发布网友

我来回答

1个回答

热心网友

描述1、FR报表系统实现单点登录有3中方式:iframe方式、ajax方式和表单提交方式。注:ajax登陆方式支持7.0.4及以上版本。不论是哪一种登陆方式,FR报表系统都为用户提供了统一的接口,接口如下:localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso&username=XX&password=XX注:该接口不仅可用来做单点登录,也可用作自定义登录界面。不同的登录方式使用接口进行单点登录的实现方式是不一样的,以下我们根据不同的登录方式详细介绍。2、ajax方式ajax登录方式支持跨域,相对于iframe方式来说,ajax的身份验证是异步验证,同时对于验证超时做了处理,具体用法可查看ajax跨域异步单点登录jQuery.ajax({url:"localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//单点登录的报表服务器dataType:"jsonp",//跨域采用jsonp方式data:{"username":username,"password":password},jsonp:"callback",timeout:5000,//超时时间(单位:毫秒)success:function(data){if(data.status==="success"){//登录成功}elseif(data.status==="fail"){//登录失败(用户名或密码错误)}},error:function(){//登录失败(超时或服务器其他错误)}});3、iframe方式iframe方式单点登录的接口为:FR.servletURL+"?op=fs_load&cm=sso&username=XX&password=XX",具体用法可查看iframe跨域单点登陆。varscr=document.createElement("iframe");//创建iframescr.src="localhost:8075/WebReport/ReportServer?op=fs_load&cm=sso&username="+username+"&password="+password;//将报表验证用户名密码的地址指向此iframeif(scr.attachEvent){//判断是否为ie浏览器scr.attachEvent("onload",function(){//如果为ie浏览器则页面加载完成后立即执行window.location="localhost:8075/WebReport/ReportServer?op=fs";//直接跳转到数据决策系统});}else{scr.onload=function(){//其他浏览器则重新加载onload事件window.location="localhost:8075/WebReport/ReportServer?op=fs";//直接跳转到数据决策系统};}document.getElementsByTagName("head")[0].appendChild(scr);//将iframe标签嵌入到head中4、表单提交方式报表权限验证时直接使用action触发url进行验证,url的验证地址与iframe的验证地址相同,具体可查看表单action提交登陆。5、iframe方式和ajax方式的区别iframe方式和ajax方式均可以实现跨域单点登录,ajax可以实现异步的单点登录,并且可对报表系统验证的结果进行处理,如登录超时,但是iframe不可以异步处理,并且在进行报表验证的时候,无法对验证的结果进行处理。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com