关于BusinessObjects系统单点登录(SSO)解决办法(二)
2007-05-14 21:07
204 查看
BusinessObjects支持单点登录(Single sign on 简称SSO)功能,但那是指的是使用Windows活动目录认证的一种方法。与目前我们常用的使用超链接进行的单点登录(登录在别系统中,使用别系统的当前用户来认证BusinessObjects进行登录)属于不同类型的单点登录类型。为此,我们只能另求他法。经过研究,下面两种方法满足我们目前的要求:
点击此处查看方法一
原理:Inforview使用form的认证方式,每一个Form在认证的时候,总是会先检查一个叫做“CE_ENTERPRISESESSION”的Session,如果这个Session里面存在一个BO已经登录了的“EnterpriseSession”,那么,页面可以显示,否则,自动跳转到Inforview的登录页面。
利用这个机制,我们可以为BO创建一个“EnterpriseSession”Session的方法。有人可能会马上想到,我在外部的网站中创建一个这样的Session,然后传递的Inforview中,不就可以了么。想法是对的,但是,难就难在因为网站的隔离性,这样的Session是很难共享的。我已经实验过多次,均告失败。如果您有更好的办法,希望不吝赐教。
既然在别的网站创建的Session不能共享,那么,我们可以使用嵌入法啊。也就是,在Inforview网站的内部创建这个Session。但是由于Inforview是编译运行的网站,所以,我们得需要另外建立别的网页,在我们的网页中进行单点登录,生成Session,最后把这个网页和所生成的DLL文件拷贝到inforview的相应目录下面,使其成为Inforview网站的一部分。当我们需要单点登录到Inforview的主页的时候,我们传递用户信息等参数直接调用我们自己开发的网页,再由我们自己的网页Redirect到Inforview的主页。
注意一点的是,Inforview目前的R2版本是VS2003开发的,所以,我们创建的网页也得需要Vs2003来进行开发。
步骤:
Ø 打开vs2003,新建一个命名为BOSSO网站。
Ø 把默认产生的WebForm1删除掉,添加一个命名为SSOLogon.aspx的网页。
Ø 项目添加对“CrystalDecisions.Enterprise”和“CrystalDecisions.Enterprise.WebControls”引用。
打开SSOLogon.aspx的代码,在Page_Load中增加如下代码:
private void Page_Load(object sender, System.EventArgs e)
注:[/b]在本示例中,我们使用了明文的参数传递方法,这种方法危险性极大,您可以对参数的传递进行加密等处理,但在此为了说明的简单,并不进行复杂的处理。
Ø 编译调式运行程序。
Ø 把调式通过的SSOLogon.aspx网页拷贝到Inforview的目录之下。例如:
C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\InfoView目录之下。
Ø 把编译生成的BOSSO.DLL文件拷贝到Inforview的bin目录之下。例如:
C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\InfoView\bin目录之下。
Ø 为了安全起见,您可以把BO网站重新启动一次。
在您需要单点登录到Inforview主页的网站中,使用下面的链接就可以直接登录到Inforview的主页:
…/inforview/SSOLogon.aspx?System=10.10.100.168&SSOUser=Administrator&SSOPWD=MyPassword
使用本方法,弥补了方法一的一些不足:方法一要求必须在外部的网站中对BO的报表进行管理,比如报表的目录,用户对报表所拥有的权限等。使用本方法,我们可以直接利用BO对报表进行分类,权限的控制等等,还可以直接在Inforview的主页中查看其他的报表、文档等信息。
点击此处查看方法一
b) 方法二
使用嵌入法。这种方法可以直接登录到BusinessObjects中Inforview的主页,这样,所有用户可用的报表就直接由Inforview的主页来展示。原理:Inforview使用form的认证方式,每一个Form在认证的时候,总是会先检查一个叫做“CE_ENTERPRISESESSION”的Session,如果这个Session里面存在一个BO已经登录了的“EnterpriseSession”,那么,页面可以显示,否则,自动跳转到Inforview的登录页面。
利用这个机制,我们可以为BO创建一个“EnterpriseSession”Session的方法。有人可能会马上想到,我在外部的网站中创建一个这样的Session,然后传递的Inforview中,不就可以了么。想法是对的,但是,难就难在因为网站的隔离性,这样的Session是很难共享的。我已经实验过多次,均告失败。如果您有更好的办法,希望不吝赐教。
既然在别的网站创建的Session不能共享,那么,我们可以使用嵌入法啊。也就是,在Inforview网站的内部创建这个Session。但是由于Inforview是编译运行的网站,所以,我们得需要另外建立别的网页,在我们的网页中进行单点登录,生成Session,最后把这个网页和所生成的DLL文件拷贝到inforview的相应目录下面,使其成为Inforview网站的一部分。当我们需要单点登录到Inforview的主页的时候,我们传递用户信息等参数直接调用我们自己开发的网页,再由我们自己的网页Redirect到Inforview的主页。
注意一点的是,Inforview目前的R2版本是VS2003开发的,所以,我们创建的网页也得需要Vs2003来进行开发。
步骤:
Ø 打开vs2003,新建一个命名为BOSSO网站。
Ø 把默认产生的WebForm1删除掉,添加一个命名为SSOLogon.aspx的网页。
Ø 项目添加对“CrystalDecisions.Enterprise”和“CrystalDecisions.Enterprise.WebControls”引用。
打开SSOLogon.aspx的代码,在Page_Load中增加如下代码:
private void Page_Load(object sender, System.EventArgs e)
注:[/b]在本示例中,我们使用了明文的参数传递方法,这种方法危险性极大,您可以对参数的传递进行加密等处理,但在此为了说明的简单,并不进行复杂的处理。
Ø 编译调式运行程序。
Ø 把调式通过的SSOLogon.aspx网页拷贝到Inforview的目录之下。例如:
C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\InfoView目录之下。
Ø 把编译生成的BOSSO.DLL文件拷贝到Inforview的bin目录之下。例如:
C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\InfoView\bin目录之下。
Ø 为了安全起见,您可以把BO网站重新启动一次。
在您需要单点登录到Inforview主页的网站中,使用下面的链接就可以直接登录到Inforview的主页:
…/inforview/SSOLogon.aspx?System=10.10.100.168&SSOUser=Administrator&SSOPWD=MyPassword
使用本方法,弥补了方法一的一些不足:方法一要求必须在外部的网站中对BO的报表进行管理,比如报表的目录,用户对报表所拥有的权限等。使用本方法,我们可以直接利用BO对报表进行分类,权限的控制等等,还可以直接在Inforview的主页中查看其他的报表、文档等信息。
相关文章推荐
- 关于BusinessObjects系统单点登录(SSO)解决办法(一)
- 关于系统默认JDK1.8, 但是使用Maven 的mvn -version命令时发现Java版本为其他解决办法
- 关于“系统错误&H80004015(-2147467243).此类别是作为跟调用程序不同的安全ID运行的”的解决办法
- 关于VS编译时出现无法打开libcmrt.lib,libc.lib等系统常见库文件的解决办法
- 关于win10系统安装vivado 2017.1 .2 .3 报runtime error 问题解决办法 亲测有效
- 郑州iOS點 - 关于升级Mac系统后cocoapods无法导入第三方的问题解决办法
- 关于Ubuntu系统笔记本在电池模式下鼠标等外设失去响应的解决办法
- 关于解决虚拟机里的xp系统不能识别USB的办法。。
- 关于阿里云输入公网ip无法打开装机盘系统解决办法
- 【技术贴】关于笔记本待机后登录xp系统声音突变,撕啦,卡,听着不爽的解决办法。。。
- 关于百度统计无法访问,或拒绝百度服务器登录,请联系您的工程师予以解决的解决办法
- 关于单点登录--单点登录系统(SSO)的开发思路
- 关于[Cannot launch SDK manager]系统找不到指定的路径 的一般解决办法
- tomcat 7 windows系统下解压缩版登录不了的解决办法
- 关于 xshell ssh登录 virtualbox linux虚拟机问题的解决办法
- 中了MSN FUNNY病毒后,电脑登录时总是注销,无法进入系统的解决办法
- 关于Ubuntu系统无法搜索到wifi信号的解决办法
- 关于远程桌面访问没有登录权限的解决办法
- 关于Windows 7 64位系统 HP M1319f 打印机无法扫描的解决办法
- 关于plsql可以登录,sqlplus不能登录解决办法