惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
H
Help Net Security
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Jina AI
Jina AI
L
LangChain Blog
K
Kaspersky official blog
I
Intezer
Martin Fowler
Martin Fowler
爱范儿
爱范儿
AWS News Blog
AWS News Blog
The Hacker News
The Hacker News
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
CXSECURITY Database RSS Feed - CXSecurity.com
Spread Privacy
Spread Privacy
Simon Willison's Weblog
Simon Willison's Weblog
U
Unit 42
N
News and Events Feed by Topic
A
Arctic Wolf
G
GRAHAM CLULEY
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
F
Fortinet All Blogs
C
Cisco Blogs
美团技术团队
Vercel News
Vercel News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
H
Hacker News: Front Page
T
Tailwind CSS Blog
I
InfoQ
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
P
Palo Alto Networks Blog
A
About on SuperTechFans
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
TaoSecurity Blog
TaoSecurity Blog
Google Online Security Blog
Google Online Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy & Cybersecurity Law Blog
H
Heimdal Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
O
OpenAI News
博客园 - Franky
Scott Helme
Scott Helme

博客园 - 南疯

C#中获得月份中的第一天和最后一天和判断闰年 VS2008的网页报表可以直接打印了 Impossible 与 I’m possible 别吵了,.NET和JAVA两大帮派合并了! 让"指定的 MSProjectServerRole 帐户不属于 MSProjectServerRole 角色"去死吧 我所理解的工作流工作模式 BusinessObjects系统用户信息同步的解决类 关于BusinessObjects系统单点登录(SSO)解决办法(一) 教您怎样在C#中锁定Word内容,还教您怎样把人家的锁定内容破解了 一个封装比较完整的FTP类——clsFTP How to share Session variables across Domains(在不同域之间共享Session) 还是VS2005全角问题 博客园(堂)内的互助有感 一个完整的接口技术解决方案 一个完整的接口技术解决方案(八) 一个完整的接口技术解决方案(七) 一个完整的接口技术解决方案(六) 一个完整的接口技术解决方案(五) 一个完整的接口技术解决方案(四)
关于BusinessObjects系统单点登录(SSO)解决办法(二)
南疯 · 2007-05-14 · via 博客园 - 南疯

    BusinessObjects支持单点登录(Single sign on 简称SSO)功能,但那是指的是使用Windows活动目录认证的一种方法。与目前我们常用的使用超链接进行的单点登录(登录在别系统中,使用别系统的当前用户来认证BusinessObjects进行登录)属于不同类型的单点登录类型。为此,我们只能另求他法。经过研究,下面两种方法满足我们目前的要求:

   点击此处查看方法一

b)   方法二

使用嵌入法。这种方法可以直接登录到BusinessObjectsInforview的主页,这样,所有用户可用的报表就直接由Inforview的主页来展示。

原理:Inforview使用form的认证方式,每一个Form在认证的时候,总是会先检查一个叫做“CE_ENTERPRISESESSION”的Session,如果这个Session里面存在一个BO已经登录了的“EnterpriseSession,那么,页面可以显示,否则,自动跳转到Inforview的登录页面。

利用这个机制,我们可以为BO创建一个“EnterpriseSessionSession的方法。有人可能会马上想到,我在外部的网站中创建一个这样的Session,然后传递的Inforview中,不就可以了么。想法是对的,但是,难就难在因为网站的隔离性,这样的Session是很难共享的。我已经实验过多次,均告失败。如果您有更好的办法,希望不吝赐教。

既然在别的网站创建的Session不能共享,那么,我们可以使用嵌入法啊。也就是,在Inforview网站的内部创建这个Session。但是由于Inforview是编译运行的网站,所以,我们得需要另外建立别的网页,在我们的网页中进行单点登录,生成Session,最后把这个网页和所生成的DLL文件拷贝到inforview的相应目录下面,使其成为Inforview网站的一部分。当我们需要单点登录到Inforview的主页的时候,我们传递用户信息等参数直接调用我们自己开发的网页,再由我们自己的网页RedirectInforview的主页。

注意一点的是,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)
{
    
string strSystem = Request.QueryString["System"];
    
string strUser = Request.QueryString["SSOUser"];
    
string strPWD = Request.QueryString["SSOPWD"];
    CrystalDecisions.Enterprise.WebControls.Identity MainIdentity 
= new CrystalDecisions.Enterprise.WebControls.Identity();
    
bool Success = MainIdentity.Logon(strUser, strPWD, strSystem, "Enterprise");
    
if (Success)
    
{
HttpContext.Current.Session[
"CE_ENTERPRISESESSION"= MainIdentity.EnterpriseSession;
Response.Redirect(
"main.aspx"false);
    }

    
else
    
{
Response.Redirect(
"Logon.aspx"false);
    }

}

注:在本示例中,我们使用了明文的参数传递方法,这种方法危险性极大,您可以对参数的传递进行加密等处理,但在此为了说明的简单,并不进行复杂的处理。

Ø         编译调式运行程序。

Ø         把调式通过的SSOLogon.aspx网页拷贝到Inforview的目录之下。例如:

C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\Web Content\Enterprise115\InfoView目录之下。

Ø         把编译生成的BOSSO.DLL文件拷贝到Inforviewbin目录之下。例如:

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的主页中查看其他的报表、文档等信息。