实现Reporting Service2008匿名访问的方法
同样适用于2008 R2。
ReportingService是个很强大的报表引擎!但实现Reporting Service2008 的匿名访问是件比较费劲的事情,网上提供的方法挺多的,但都不适用于使用URL方式访问。
RS2005依赖于IIS,可使用IIS的匿名账户进行匿名登录访问。而RS2008不依赖于IIS,即无法通过IIS的匿名账户进行访问,也就是你访问需要输入有效的用户名及密码。
被逼无奈求助谷歌大神!找到一篇“Anonymous access in SQL RS 2008”的文章,仔细看看,根据内容进行配置。无奈没用,仔细研究找原因:“F××× You!!” 我装的是64位的MSSQL2008,我竟然在32位的目录下设置来,设置去,无奈我傻×了。找准对象重新来,“Bingo!” OK了!下面是设置方法。原文请见:http://blogs.msdn.com/b/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx
我这就就简单翻一下,做个记录。
1、找到RS2008的安装目录,如果你是64位系统,并且安装的是64位的MSSQL2008,并且是默认路径安装,请移步文件夹:C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQL2008\Reporting Services 否则请根据你自己的设置去找。
2、备份文件(注意文件夹):
①\ReportServer\web.config
②\ReportServer\rssrvpolicy.config
③\ReportServers\rsreportserver.config
④\ReportManager\Web.config
3、修改①、④两个文件
查找:
<authentication mode="Windows" /> <identity impersonate="true"/>
替换为:
<authentication mode="None" /> <identity impersonate="false"/>
4、修改③文件
查找:
<Authentication> <AuthenticationTypes> ×××××××××××××××××××××××××××××××××××××× </AuthenticationTypes> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>
替换为:
<Authentication> <AuthenticationTypes> <Custom/> </AuthenticationTypes> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>
查找:
<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、下载文件:AnonymousSecurity.dll 解压保存到目录“\ReportServer\bin\”文件夹下。
6、修改②文件
查找:
<CodeGroup class="FirstMatchCodeGroup version="1" PermissionSetName="Nothing"> <IMembershipCondition class="AllMembershipCondition" version="1" />
后面增加:
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="Private_assembly" Description="This code group grants custom code full trust. "> <IMembershipCondition version="1" Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQL2008\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll" /> </CodeGroup>
到此为止配置结束,重启RS服务即可