首页 > 其他 > 详细

匿名访问ReportService报表服务器(一)

时间:2014-06-10 09:38:33      阅读:454      评论:0      收藏:0      [点我收藏+]

  我的数据库版本是sql server 2008 r2,系统环境是windows server2008.

  对于sql server 2008 r2上报rs报表的匿名访问问题,我这边尝试过两个可行方案:

  (1)使用ReportViewer展现报表,实现ReportViewer.ReportServerCredentials 对应的接口IReportServerCredentials,在接口中指定特定的用户名和密码。

  (2)直接访问RS报表页面,通过修改RS配置文件和SQL团队技术博客所提供的认证和安全节点下扩展类。

  (3)直接访问RS报表页面,指定用户名和密码来认证(我想这个可能性也是有的,只是没有做实验)

 

  两种方案比较:

  方案(1)实现起来简单,但ReportViewer本身内存泄漏的问题,建议不要轻易尝试,另外它不是根本上的匿名访问,实际使用的时候需要配置用户名和密码。

  方案(2)配置起来比较繁琐,但却是真正意义上的匿名访问。

 

  由于第二种方案能解决我现有项目的问题,所以本篇博客专注写第二种方案的实现方式。

  需要修改的配置和使用的资源:

  (1)*:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer 文件夹下的web.config、rssrvpolicy.config和rsreportserver.config

  (2)*:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager文件夹下的web.config

  (3)Microsoft.Samples.ReportingServices.AnonymousSecurity.dll(微软SQL技术博客提供的扩展类)

 

  配置Steps:

  (1)将文件Microsoft.Samples.ReportingServices.AnonymousSecurity.dll拷贝到*:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin目录下的。

  (2)对于上面提到的两个web.config文件,将下面代码

<authentication mode="Windows" />
<identity impersonate="true" />

替换成

<!--<authentication mode="Windows" />
    <identity impersonate="true" />-->
      <authentication mode="None" />
      <identity impersonate="false"/>

  (3)对于rsreportserver.config文件:

将下面代码

bubuko.com,布布扣
<Authentication>
        <AuthenticationTypes>
            <RSWindowsNTLM/>
        </AuthenticationTypes>
        <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
        <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
bubuko.com,布布扣

  修改为

bubuko.com,布布扣
<Authentication>
        <AuthenticationTypes>
            <!--<RSWindowsNTLM/>-->
            <Custom/>
        </AuthenticationTypes>
        <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
        <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
bubuko.com,布布扣

将下面代码

bubuko.com,布布扣
        <Security>
            <Extension Name="Windows" Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization, Microsoft.ReportingServices.Authorization"/>
        </Security>
        <Authentication>
            <Extension Name="Windows" Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication, Microsoft.ReportingServices.Authorization"/>
        </Authentication>                
bubuko.com,布布扣

修改为

bubuko.com,布布扣
<Security>
            <!--<Extension Name="Windows" Type="Microsoft.ReportingServices.Authorization.WindowsAuthorization, Microsoft.ReportingServices.Authorization"/>-->
            <Extension Name="None" Type="Microsoft.Samples.ReportingServices.AnonymousSecurity.Authorization, Microsoft.Samples.ReportingServices.AnonymousSecurity" />
        </Security>
        <Authentication>
            <!--<Extension Name="Windows" Type="Microsoft.ReportingServices.Authentication.WindowsAuthentication, Microsoft.ReportingServices.Authorization"/>-->
            <Extension Name="None" Type="Microsoft.Samples.ReportingServices.AnonymousSecurity.AuthenticationExtension, Microsoft.Samples.ReportingServices.AnonymousSecurity" />
        </Authentication>
bubuko.com,布布扣

(4)对于rssrvpolicy.config文件,将下面代码

bubuko.com,布布扣
<CodeGroup
                            class="UnionCodeGroup"
                            version="1"
                            PermissionSetName="FullTrust"
                            Name="Private_assembly"
                            Description="This code group grants custom code full trust. ">
                            <IMembershipCondition
                                class="UrlMembershipCondition"
                                version="1"
                                Url="D:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll" />
                        </CodeGroup>
bubuko.com,布布扣

添加到

bubuko.com,布布扣
 <CodeGroup 
                            class="FirstMatchCodeGroup"
                            version="1"
                            PermissionSetName="Nothing">
                        <IMembershipCondition 
                                class="AllMembershipCondition"
                                version="1"
                        />
bubuko.com,布布扣

节点里面,作为这个节点的子节点。

(5)重启SQL Server Reporting Service。

 

参照网址:http://blogs.msdn.com/b/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx

匿名访问ReportService报表服务器(一),布布扣,bubuko.com

匿名访问ReportService报表服务器(一)

原文:http://www.cnblogs.com/cowman/p/3778372.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!