實現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 服務。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
