关于BusinessObjects系统单点登录(SSO)解决办法(一)
2007-05-14 12:34
337 查看
BusinessObjects支持单点登录(Single sign on 简称SSO)功能,但那是指的是使用Windows活动目录认证的一种方法。与目前我们常用的使用超链接进行的单点登录(登录在别系统中,使用别系统的当前用户来认证BusinessObjects进行登录)属于不同类型的单点登录类型。为此,我们只能另求他法。经过研究,下面两种方法满足我们目前的要求:
Token的产生。利用下面的代码我们可以生成一个Token:
using CrystalDecisions.Enterprise;
private string GetToken(string System, string UserName, string Password)
openDocument的Url格式:
http://<hostname>:<port>/businessobjects/enterprise115/InfoView/scripts/opendocument.aspx
在上面的Url后面,可以传递openDocument的各种参数。openDocument的参数列表(本列表忽略了一些不常用的参数,仅仅列出了常用的参数):
请稍候,办法二马上就写!
a) 方法一
使用openDocument方法。BusinessObjects在其网页目录: ..\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\InfoView\scripts下面有一个网页openDocument.aspx,利用这个页面,我们可以从其他的网站链接到该页面打开一个报表,这种方法不仅可以直接打开一个报表,而且支持传递Token登录信息来进行单点登录。Token的产生。利用下面的代码我们可以生成一个Token:
using CrystalDecisions.Enterprise;
private string GetToken(string System, string UserName, string Password)
openDocument的Url格式:
http://<hostname>:<port>/businessobjects/enterprise115/InfoView/scripts/opendocument.aspx
在上面的Url后面,可以传递openDocument的各种参数。openDocument的参数列表(本列表忽略了一些不常用的参数,仅仅列出了常用的参数):
参数名称[/b] | 说 [/b]明[/b] | 是否强制[/b] | 值[/b] |
token | 包含用户Session认证的token文本 | 否 | Token文本 |
示例: openDocument.aspx?iDocID=342&token=(在此使用GetToken得到的文本) | |||
iDocID | 文档的ID | 是,但可以用sDocName来代替 | 文档ID (InfoObjectID) |
sIDType | CMS对象类型 | 是。如果是默认对象(InfoObjectID)可以不用 | . CUID . GUID . RUID . InfoObjectID (默认) |
示例: openDocument.aspx?iDocID=342 openDocument.aspx?iDocID=AWimiw9StnhGm993evk.Amc&sIDType=CUID | |||
sType | 目标是文档还是报表文件类型 | 是。但对于未知的文件类型忽略(xls, doc, txt,等) | .wid .rpt .car .rep |
示例: openDocument.aspx?iDocID=342& sType=wid openDocument.aspx?iDocID=343& sType=rpt | |||
sPath | 包含目标文档的目录和子目录 本参数是与sDocName一起使用的 | 否 | 目录和子目录 表示方法: [folder],[subfolder] |
sDocName | 不带有扩展名的文档名称 这个参数与sPath一起使用 | 否 | myDocument |
示例: openDocument.aspx?sPath=[reports]&sDocName=Charting&sType=rpt openDocument.aspx?sPath=[reports],[finance]&sDocName=Summary&sType=rpt | |||
sReportName | 在一个文档中包含多个报表的时候决定那一个报表打开(默认的时候处于激活的报表优先打开) | 否 | 文档中的子报表名字 |
示例: openDocument.aspx?iDocID=342&sType=wid&sReportName=Report2 | |||
sReportPart | 指定报表中的哪一块被打开 报表中经常包含饼图和表格数据两种部分,每一块都有自己的名字,用这个参数可以指定打开的是哪块的内容 | 否 | 被打开的报表块名称 |
sPartContext | 水晶报表中,报表的某一部分重视关联着数据范围 | 是,如果使用了sReportPart指定报表的块 | 报表块的数据范围 |
sReportMode | 仅用于水晶报表。指定链接打开的是全部的报表还是sReportPart部分块 | 否。默认是Full。仅仅在sReportPart指定为部分块的时候使用 | . Full . Part |
示例: 在全球销售报表中,报表柱图块的名字叫做“Text2;Graph1” 并且默认的数据范围是 “/”(全部数据) openDocument.aspx?sType=rpt&sDocName=World+Sales+Report&sReportPart=Text2;Graph1&sPartContext=/ 如果仅仅显示英格兰这个国家的数据: openDocument.aspx?sType=rpt&sDocName=World+Sales+Report&sReportPart=Text2;Graph1&sPartContext=/Country[England]&sReportMode=Part 注意,在上面的Url 中,用加号(+)来表示报表中一个空格占位符 | |||
sRefresh | 指定在打开报表是时候是否强制刷新报表的数据 | 否 | . Y(刷新报表数据) . N(不刷新数据) |
示例: openDocument.aspx?iDocID=342&sType=wid&sRefresh=Y | |||
lsS[NAME] | 给报表的一个单值参数赋值 [NAME]指参数变量的名称 | 否 | 一个单值参数的值 |
示例: openDocument.aspx?iDocID=342&sType=wid&sRefresh=Y&lsSProductName=Cycle 下列的示例给多个单值参数赋值并注意各种值的赋值形式: openDocument.aspx?sType=rpt&iDocID=858&sRefresh=Y& lsSparamString=h&lsSparamNumber=1& lsSparamCurrency=121&lsSparamDate=Date(2003,6,11)& lsSparamDateTime=DateTime(2003,6,11,14,38,37)&lsSparamBoolean=false& lsSparamTime=Time(12,39,2)&lsSparamStringDR=a&lsSparamDateDR=Date(2003,6,1) | |||
lsM[NAME] | 给报表的一个多值参数赋值 [NAME]指参数变量的名称 | 否 | l 多只参数的各个值用逗号“,”分开。 l 对于Webi报表来说,用分号“;”来分开各个值 l 如果是水晶报表,每个值必须用中括号“[”“]”括起来。 l 如果是一个分析报表,用MDX WITH括起来 |
示例: openDocument.aspx?iDocID=345& sType=wid&sRefresh=Y&lsMProductName=Cycle;Car 或者如下示例: openDocument.aspx?sType=rpt&iDocID=859&sRefresh=Y& lsMparamStringDR=[c],[d]&lsMparamNumberDR=[3],[4]& lsMparamDateDR=[Date(2003,6,3)],[Date(2003,6,4)]& lsMparamDateTimeDR=[DateTime(2003,6,1,3,1,1)],[DateTime(2003,6,1,4,1,1)] lsR[NAME] | |||
lsR[NAME] | 给报表的一个值参数指定一个值范围 [NAME]指参数变量的名称 | 否 | l 一个值范围,用两个点(..)分开 l 如果是一个水晶报表,值范围用一个中括号“[”或圆括号“(”括起来,而且后面要有对应的反括号 l 如果是一个OLAP报表,用MDX WITH括起来 |
示例: openDocument.aspx?sType=rpt&iDocID=860&lsRparamStringDR=[h..i]& lsRparamNumberDR=[7..8]& lsRparamCurrencyDR=[3..4]& lsRparamDateDR=[Date(2003,6,7)..Date(2003,6,8)]& lsRparamDateTimeDR=[DateTime(2003,6,1,7,1,1)..DateTime(2003,6,1,8,1,1)]& lsRparamTimeDR=[Time(1,1,7)..Time(1,1,8)]&lsRparamUnbound1=(..6)& lsRparamUnbound2=[6..)&lsRparamStringR=[a..d]&lsRparamNumberR=[1..3]& lsRparamCurrencyR=[1..3]&lsRparamDateR=[Date(2003,6,1)..Date(2003,6,3)]& lsRparamDateTimeR=[DateTime(2003,6,1,1,1,1)..DateTime(2003,6,1,3,1,1)]& lsRparamTimeR=[Time(1,1,1)..Time(3,1,1)] | |||
sOutputFormat | 指定目标文档是以怎么样的格式来显示 | 否,默认是HTML | . H (HTML) . P (PDF) . E (Excel) . W (Word) 仅适用于水晶报表 |
示例: openDocument.aspx?iDocID=347&sType=wid&sOutputFormat=P openDocument.aspx?iDocID=861&sType=rpt&sOutputFormat=W | |||
sWindow | 指定文档是在当前的窗口打开还是在一个新的窗口打开 | 否 | . Same . New |
相关文章推荐
- 关于BusinessObjects系统单点登录(SSO)解决办法(二)
- 关于Ubuntu系统笔记本在电池模式下鼠标等外设失去响应的解决办法
- 关于系统默认JDK1.8, 但是使用Maven 的mvn -version命令时发现Java版本为其他解决办法
- 关于VS编译时出现无法打开libcmrt.lib,libc.lib等系统常见库文件的解决办法
- 关于win10系统安装vivado 2017.1 .2 .3 报runtime error 问题解决办法 亲测有效
- 郑州iOS點 - 关于升级Mac系统后cocoapods无法导入第三方的问题解决办法
- 关于“系统错误&H80004015(-2147467243).此类别是作为跟调用程序不同的安全ID运行的”的解决办法
- 关于解决虚拟机里的xp系统不能识别USB的办法。。
- 关于阿里云输入公网ip无法打开装机盘系统解决办法
- 关于单点登录--单点登录系统(SSO)的开发思路
- tomcat 7 windows系统下解压缩版登录不了的解决办法
- 【技术贴】关于笔记本待机后登录xp系统声音突变,撕啦,卡,听着不爽的解决办法。。。
- 关于百度统计无法访问,或拒绝百度服务器登录,请联系您的工程师予以解决的解决办法
- 关于[Cannot launch SDK manager]系统找不到指定的路径 的一般解决办法
- 关于 xshell ssh登录 virtualbox linux虚拟机问题的解决办法
- 关于Ubuntu系统无法搜索到wifi信号的解决办法
- 中了MSN FUNNY病毒后,电脑登录时总是注销,无法进入系统的解决办法
- 关于Windows 7 64位系统 HP M1319f 打印机无法扫描的解决办法
- 关于plsql可以登录,sqlplus不能登录解决办法
- 关于远程桌面访问没有登录权限的解决办法