实现Reporting Service2008 的匿名访问(亲测可

系统 1582 0

  实现Reporting Service2008 的匿名访问是件比较费劲的事情,网上提供的方法挺多的,但总结起来起来能用的就三种:

  一种通过ReportViewer控件显示报表,在系统中添加一个专用用户,权限限制在浏览级别,然后在代码中实现身份接口,指定控件以该用户身份登录,这是变相的匿名访问;(详细见 http://www.cnblogs.com/lonely7345/archive/2010/01/10/1643603.html

  第二种是通过WebService来访问报表,是本人一篇博文( http://www.cnblogs.com/dege301/archive/2009/09/04/1560456.html )中介绍方法的衍生,细节不在说明,类似于第一种方法需要指定专门用户,也不是真正意义上的匿名访问;

  第三种就是MSDN上能找到的那种,更改4个配置文件并添加一个.dll文件,经本人测试,如果完全按照给的说明操作不可行,会出现“报表服务器配置错误”,但经过一些列改动之后该方法可行,并且是真正意义上的匿名访问,将在下文中给出详细步骤。

涉及到的配置文件如下(目录视具体安装情况):

1.          C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer 下的 web.config rsreportserver.config rssrvpolicy.config

2.          C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportManager 下的 web.config

注意:在配置之前先备份以上文件,以防失败!!!

 

配置过程:

1.          找到两个 Web.config 文件中的如下代码:

< authentication mode = " Windows " />

< identity impersonate = " true " />

替换成:

< authentication mode = " None " />

 < identity impersonate = " false " />

2.          找到 rsreportserver.config 文件中的如下代码:

    < Authentication >

       < AuthenticationTypes >

           < RSWindowsNegotiate />

           < RSWindowsNTLM />

       </ AuthenticationTypes >

       < EnableAuthPersistence > true </ EnableAuthPersistence >

    </ Authentication >

    替换成:

             < Authentication >

        < AuthenticationTypes >

            < Custom />

        </ AuthenticationTypes >

        < EnableAuthPersistence > true </ EnableAuthPersistence >

</ Authentication >

3.    把文件 Microsoft.Samples.ReportingServices.AnonymousSecurity.dll 放到 C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin 目录下(注意:目录视具体安装情况而定)

4.          找到 rsreportserver.config 文件中的如下代码:

< 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 >

    替换成

            < Security >

            < Extension Name = " None " Type = " Microsoft.Samples.ReportingServices.AnonymousSecurity.Authorization, Microsoft.Samples.ReportingServices.AnonymousSecurity " />

        </ Security >

        < Authentication >

            < Extension Name = " None " Type = " Microsoft.Samples.ReportingServices.AnonymousSecurity.AuthenticationExtension, Microsoft.Samples.ReportingServices.AnonymousSecurity " />

        </ Authentication >

5.          找到文件 rssrvpolicy.config 中的如下代码:

</ NamedPermissionSets >

                    < CodeGroup

                            class = " FirstMatchCodeGroup "

                            version = " 1 "

                            PermissionSetName = " Nothing " >

                        < IMembershipCondition

                                class = " AllMembershipCondition "

                                version = " 1 "

                        />

    在后面 添上 如下代码(注意Url地址可能不同):

< 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 = " C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER2008\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll " />

                        </ CodeGroup >

6.          重启 Reporting Service 服务。

 

实现Reporting Service2008 的匿名访问(亲测可行)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论