玩转SSRS第九篇---匿名访问的一个间接方法
SSRS是一个功能丰富的报表平台,我们可以在这个平台上实现各种不同需求的报表应用,所以这个平台也吸引了很多.net框架之外的技术,希望能在应用中引入SSRS的报表,比如JSP或者PHP页面,这个时候系统往往会有这种需求,就是通过程序能够直接访问到SSRS的报表,而不让其弹出身份验证框。

从SSRS2008之后,匿名访问的配置就没有那么直接,可能会很麻烦,关于这点园子里已经有兄弟Dege301对其描述过:
http://www.cnblogs.com/dege301/archive/2010/04/09/1708103.html
我这里将用另外一个间接的方法对SSRS实现匿名验证。具体的思路就是在应用(JSP or PHP等)和SSRS之间加一个ASP.NET程序,利用ReportViewer显示报表,发布到IIS的时候让其模拟为在SSRS下有访问权限的用户。

为了演示方便,首先建立一个SSRS项目,然后放置几张简单的报表。

之后将其发布,后面将用匿名的方法间接的对这些报表进行访问。

报表的内容用Report1,2,3进行了标识。

打开Visual Studio,新建一个ASP.NET Web Application项目,加入两个页面Report.aspx,ReportList.aspx,前者是用ReportViewer来显示报表的,它接收ReportList.aspx传递过来的报表路径信息。

此外加入了一个SSRS中的系统表在Linq to SQL中。从这个表里可以读到SSRS实例下都已经发布了哪些报表。
从这一步开始到创建ReportList.aspx的所有步骤,都是为了让页面能读取到已经发布到SSRS报表的信息,对于不熟悉ASP.NET的朋友来说可以直接跳过,这个页面就相当于在一个JSP页面中向SSRS发送报表请求的一个页面。

在ReportList.aspx里,加入一个ListView控件以及LinqDataSource控件,我们在这个页面上通过Linq to SQL把SSRS实例中的报表信息都读出来,并且创建超级链接跳转到Report.aspx显示报表的详细内容。

首先配置LinqDataSource,按照我的截图一步一步配置就可以,这个数据源将读取出所有已经发布到SSRS中的报表。首先配置页面中的LinqDataSource。

然后选择需要的字段,这里我们只需要Path字段。点击旁边的Where…按钮。

在Where表达式界面中添加Type==2的条件,Type为2的被标识为一个报表信息,1为一个目录信息。

编辑ListView里的模版列信息,放入HyperLink控件。

点击Edit Binding,配置Text绑定属性。

然后再配置navigateUrl绑定属性。

ReportList.aspx配置完毕,对于不熟悉ASP.NET的朋友来说可以忽略上一个页面的创建,因为这个页面主要是用来模拟一个普通的页面比如JSP或者PHP跳转到Report.aspx页面的。
接下来再来创建Report.aspx页面,放入ScriptManager和ReportViewer控件。这两个控件在工具面板中都很容易找到。

Report.aspx所对应的后台代码。

代码从url参数中读取到Path参数,然后再赋给ReportViewer控件中。
接下来运行下应用,从ReportList.aspx页面开始。

列表读取到了所有已经发布到SSRS实例的报表。点击任意一个链接,就可以查看到报表的内容,留意到这个时候是没有SSRS弹出的验证界面的。

最后,将这个项目发布到IIS中作为其它应用访问SSRS报表的一个中间层。新建IIS站点。

点击身份验证。

开启ASP.NET模拟。

配置模拟信息,这里只要使用一个对报表有访问权限的用户即可。

最后,浏览项目。

可以看到跟本地调试的效果是一样的。这样就可以把这个发布的项目作为中间层来作为其它网页应用访问SSRS报表的一个中间层,来间接的实现匿名访问。

如果你觉得ReportViewer控件的工具栏很别扭,可以选择不让它显示出来,在ReportViewer控件中,找到 ShowToolBar属性设置为False即可。

这样就可以看到一个干净的SSRS报表了。

以上通过间接的方法实现SSRS报表的方法大致介绍完毕,方法的主要思路就是在应用和SSRS之间加入了一个ASP.NET站点,让这个站点具有报表的访问权限从而间接的实现了匿名访问。
这里面涉及到了一些关于ASP.NET和IIS配置的信息,有不熟悉关于他们的配置的朋友或者遇到错误无法发布的朋友欢迎在下面留言,我将尽量根据大家所提供的错误提示来帮大家解决问题。
玩转SSRS第九篇---匿名访问的一个间接方法的更多相关文章
- 15天玩转redis —— 第九篇 发布/订阅模式
本系列已经过半了,这一篇我们来看看redis好玩的发布订阅模式,其实在很多的MQ产品中都存在这样的一个模式,我们常听到的一个例子 就是邮件订阅的场景,什么意思呢,也就是说100个人订阅了你的博客,如果 ...
- SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子
很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Re ...
- ThinkPHP之中利用commom被继承控制器控制访问每一个控制器方法都需要验证是否已经登录!
防止 <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controll ...
- SSRS 报表 如何匿名查看
SSRS 报表 如何匿名查看 昨晚一直研究怎么能匿名访问报表然后给客户看呢? 研究了好几种办法 我试过的分为三种,其中推荐我认为相对可控一点. .修改SSRS配置文件来禁止他验证登陆用户权限 操作过的 ...
- SQL Server Reporting Service(SSRS) 第二篇 SSRS数据分组Parent Group
SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子默认使用Table进行简单的数据显示,有时为了进行更加直观的数据显示,我们需要按照某个字段对列表进行 ...
- 微软BI 之SSRS 系列 - 报表邮件订阅中 SMTP 服务器匿名访问与 Windows验证, 以及如何成功订阅报表的实例
这篇文章源于在上一篇博文中有园友提出订阅 SSRS 报表时的一个问题, 于是就好好总结了一下,把有关 SSRS 报表订阅的要点和容易出现问题的地方写出来,希望对大家有所帮助! 参看上一篇博文 - S ...
- SSRS匿名访问
---本人数据库是SqlServer2008 R2 匿名访问Reporting Service 2008 我想通过访问Url的方式,把部署到Sql Server Reporting Service ...
- 匿名访问ReportService报表服务器(一)
我的数据库版本是sql server 2008 r2,系统环境是windows server2008. 对于sql server 2008 r2上报rs报表的匿名访问问题,我这边尝试过两个可行方案: ...
- 解剖SQLSERVER 第九篇 OrcaMDF现在能通过系统DMVs显示元数据(译)
解剖SQLSERVER 第九篇 OrcaMDF现在能通过系统DMVs显示元数据(译) http://improve.dk/orcamdf-now-exposes-metadata-through-s ...
随机推荐
- 线段树基础模板&&扫描线
线段树的单点更新+区间求和 hdu1166敌兵布阵 Input 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N<=),表示敌人有N个工兵营地 ,接下来有N个正整数,第i个正整 ...
- 火狐浏览器,关闭ssl v3防护
某些网站,没有及时更新,导致火狐觉得有安全隐患,不给访问. --------------- Hello bcasey9090, go to about:config, copy the next bo ...
- LUA require 搜索路径指定方法
如果是一个 *.LUA 的文件, 里面用到了自己写的库, 或者第三方写的库, 但是你不想把它放到 lua 的安装目录里, 则在代码里面可以指定require搜索的路径. package.path = ...
- OpenStack网络指导手册 -基本网络概念
转自:http://blog.csdn.net/zztflyer/article/details/50441200 目录(?)[-] 以太网Ethernet 虚拟局域网VLANs 子网和地址解析协议S ...
- Oracle 数据操作
查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 g ...
- 用extern定义全局变量
1.extern的作用 extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告 ...
- Android之EditText自定义边框和边框颜色(转载)
介绍一种比较常见的用法 第一步:准备两张图片大小一样,颜色不同的图片.图片名称分为:editbox_focus.png和editbox_normal.png 放入工程的drawable文件夹下. 第二 ...
- 给一个正在运行的Docker容器动态添加Volume
给一个正在运行的Docker容器动态添加Volume本文转自:http://dockone.io/article/149 [编者的话]之前有人问我Docker容器启动之后还能否再挂载卷,考虑到mnt命 ...
- ffmpeg-20160718-git-bin.7z
官方 2016-07-18 发布的bin,彻底不支持 xp. ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] + ...
- salt安装与简单使用---基于centos6.5
1.简介SaltStack 是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack 基于Python语言实现, ...