SQL SERVER 2008中Reporting Service匿名访问的实现

&">nbsp;   SQL SERVER 2008中,Reporting Service不再依赖于IIS,这带来很多利处,不过这也意味着不能够直接通过配置IIS的虚拟目录部署来实现匿名访问了。下面我们就看一下在SSRS 2008中怎么能够实现报表的“匿名访问”,不过对于一个正式项目来说,建议不要并且从不允许匿名来访问报表。

  1. 实现IReportServerCredentials接口

  对于使用Asp.Net的ReportViewer控件,实现IReportServerCredentials接口来实现自定义身份验证,然后通过设置成ReportView的属性ServerReport.ReportServerCredentials。此接口的定义:

  

view plaincopy to clipboardprint

  public interface IReportServerCredentials

  {

  WindowsIdentity ImpersonationUser { get; }

  ICredentials NetworkCredentials { get; }

  bool GetFormsCredentials(out 
Cookie authCookie, out string 
userName, out string password, out string authority);

  }

  public interface IReportServerCredentials

  {

  WindowsIdentity ImpersonationUser { get; }

  ICredentials NetworkCredentials { get; }

  bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority);

  }  此接口定义了三种身份验证的方式来访问Report Server,可以单独使用,也可以组合使用这三种方式。

  ImpersonationUser:ReportView在每次WebRequest请求到ReportServer前模拟的一个WindowsIdentity,实际上会调用这个属性的WindowsIdentity.Impersonate方法来完成。如果此属性返回null的话,则默认使用当前线程用户。

  NetworkCredentials: 此属性的值将会经由WebRequest.Credentials属性直接传递给WebRequest,如果返回null的话,则默认是CredentialCache.DefaultCredentials,使用当前上下文的系统凭据,这也是通常我们使用的方式。

  GetFormsCredentials:这是ReportServer特有的认证体系,如果返回true的话,输出参数将用来调用ReportServer上的LogonUser方法,这个方法是用来支持服务器上的安全扩展插件。

  这个接口是如何被使用的呢,我们从report viewer说起。当ASPX page页面执行时,ReportView控件并不是一次性的请求ReportServer。这其间其实需要通过ReportViewer HTTP handler多次请求Report Server.就比如报表中显示一个图片,在客户端生成的html中有图片标签,对于其中的图片会请求ReportView控件,ReportView收到请求后会重新请求ReportServer索要这个图片,ReportServer这时还需要判断当前请求的用户是否和初始的用户一一致,如果一致才会返回图片。其它的例如ReportView提供的打印,导出也是同样的原理。

时间: 2024-12-31 01:26:01

SQL SERVER 2008中Reporting Service匿名访问的实现的相关文章

SQL Server 2008中不推荐及不支持的功能

每个人都在等着Microsoft SQL Server 2008的新功能出现,不过我们首先应该知道有哪些"不 推荐(deprecated)"以及"不支持(Discontinued)"的功能."不推荐"的 功能是指那些在旧版SQL Server中出现,但是将会在SQL Server的未来版本中不再推荐使用的功能,并且 在今后的版本中将会去除这些功能."不支持"的功能是指那些不会在SQL Server 2008中出 现的功能.在迁

利用Ring Buffer在SQL Server 2008中进行连接故障排除

原文:利用Ring Buffer在SQL Server 2008中进行连接故障排除 出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/11/21/ring-buffer-sql-server-2008.aspx SQL Server 2008中包含一个新功能,旨在帮助解决特别棘手的连接问题.这个新功能是Connectivity Ring Buffer,它可以捕捉每一个由服务器发起的连接关闭记录(server-initiated connection

配置SQL Server 2008 R2 Reporting Services

原文:配置SQL Server 2008 R2 Reporting Services 记录如何在本地配置SQL Server 2008 R2 Reporting Services,笔者环境为Windows 7 64位 + SQL Server 2008 R2   一.准备工作 其实准备工作很简单,只需通过Microsoft SQL Server 2008 R2 -> Configuration Tools -> SQL Server Configuration Manager 打开几个Wind

SQL Server 2008中的代码安全(三) 通过PassPhrase加密_mssql2008

前言:       在SQL Server 2005和SQL Server 2008之前.如果希望加密敏感数据,如财务信息.工资或身份证号,必须借助外部应用程序或算法.SQL Server 2005引入内建数据加密的能力,使用证书.密钥和系统函数的组合来完成.     与数字证书类似.SQL Server 证书包括公钥和私钥这一对密钥,它们都用来加密和解密数据.SQL Server也拥有创建非对称密钥和对称密钥对象的能力.非对称密钥(asymmetric key)与证书相似,公钥用来加密数据库,

SQL Server 2008中的数据压缩功能

SQL Server 2005 SP2为我们带来了vardecimal功能,这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可以为典型的数据仓库节省30%的空间,而SQL Server 2008在这一基础上又进一步增强了数据压缩功能.SQL Server 2008现在支持行压缩和页面压缩两种选项,数据压缩选项可以在以下对象上启用: 未创建聚簇索引的表 创建聚簇索引的表 非聚簇索引(对表设置压缩选项不会影响到该表上的非聚簇索引,因此聚簇索引的压缩需要单独设置)

SQL Server 2008中多实例的评估和执行策略

问题提出 了解了SQL Server 2008中的管理策略之后,我们想在SQL Server 2008以及SQL Server 2005中的多实例上执行这些策略.请就如何实现给出详细的解答,谢谢. 专家解答 SQL Server 2008中,当一个实例被创建后,就可以对之进行评估.但数据库管理员需要做一项非常繁琐的工作:SQL Server中所管理的每一个实例都需要逐个执行这些策略.数据库管理员做的最多的工作应该是在产品正式运行前的测试环境中不断地改变执行的策略.然而很多人都并不想逐个逐个的导入

SQL Server 2008中的联机事务处理

导言 在过去的20年数据库得到了普遍使用,并迅速发展.存储和技术成本的降低导致大量地存储数据和数据库的急剧扩大.由于这个简单有效的技术,内嵌的数据库和许多产品应运而生,并使得公司可以存储更多的数据,并保持更久的时间,所以公司想合并他们的服务器. SQL Server 2008专注于四个关键领域来满足现今的OLTP数据库需求: · 可扩展性和性能.SQL Server 2008使得公司可以建立具有现今的应用程序所要求的性能和扩展能力的数据库解决方案. · 高有效性.SQL Server 2008提

SQL Server 2008中有关XML的新功能

1 导言 Microsoft 在Microsoft SQL Server 2000中推出了与XML相关的功能以及Transact-SQL 关键字FOR XML和OPENXML ,这使得开发人员可以编写Transact-SQL代码来获取XML流形式的查询结果,并将一个XML 文档分割成一个rowset.SQL Server 2005显著的扩展了这些XML功能,推出了一个支持XSD schema验证. 基于XQuery的操作和XML索引的本地的xml 数据类型.SQL Server 2008建立在之

在SQL Server 2008中使用空间数据实现位置智能

1. 导言 现今的信息工作人员和消费者处理大量不同类型的信息,从电子表格和数据库中的商业数据的传统数 据表,到在线的基于媒体的数据例如视频.照片和音乐.近来朝向mash up解决方案(mash up解决方案是 指合并从多个来源获得的信息和内容来创建通用的在线应用程序)发展的趋势表明计算机用户使用高度集 成的解决方案来利用它们可用的大量信息. 同时,技术优势导致地理服务和设备的发展,包括在线绘制地图解决方案,例如Microsoft Virtual Earth,和较便宜的全球定位系统(GPS)解决方