This website requires JavaScript.

SSRS: 匿名访问配置方法( Anonymous Access )

1. 修改 Reporting Viewer 的設定檔 rsreportserver.config ,該檔案預設位在 C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer 的目錄下。

修改前 :

<Authentication> <AuthenticationTypes> <RSWindowsNTLM/> </AuthenticationTypes> <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel> <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>

修改後 :

<Authentication> <AuthenticationTypes> <Custom/> </AuthenticationTypes> <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel> <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>

2. 修改 Web 站台設定檔 ( web.config ),一共有兩個,一個是位在 Report Viewer 目錄下 ( 預設在 C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer );一個是位在 Report Manager 的目錄下 ( C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportManager ),因為我只開想開放 Report Viewer,因此我只改一個檔案。

修改前 :

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

修改後 :

<authentication mode="None" /> <identity impersonate="false" />

3. 從微軟下載匿名登入的範例專案 ( 下載網址  http://blog.quasarinc.com/wp-content/uploads/2012/03/Microsoft.Samples.ReportingServices.AnonymousSecurity.zip),並且重新編譯出一個新的,並且重新編譯出一個新的) Microsoft.Samples.ReportingServices.AnonymousSecurity.dll 檔案,將檔案放置在 C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin 的目錄下。正常來說你開啟下載的專案之後,在方案總管會看到類似下面的樣式,因為預設目錄下並沒有 SSRS 的 Interface 檔,因此可以選擇將那個給移除。

image

接著把 Reporting Services\ReportServer\Bin 下面的 Microsoft.ReportingServices.Interfaces.dll 檔給加入關聯,就可以建置專案產生所需要的檔案了。

image

4. 將前一個步驟所放置的檔案,將資訊記錄在 Reporting Viewer 的設定檔 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 內加入一組設定,設定 RS 信任在步驟四所建立的檔案,並允許在 Report Viewer 站台內使用。

新增 Node :

<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\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.AnonymousSecurity.dll" /> </CodeGroup>

6. 重新啟動 Reporting Services image

接著我用 Chrome 測試,直接連接 Report Viewer,果然不用做 Windows 驗證登入,就可以直接看到我的報表了。但 Report Manager 的部分要是透過 Chrome 連線,還是無法正常顯示,但對我來說那個並不大重要,反正我只開放讓使用者看報表,透過 Report Viewer 就足夠滿足我的需求了。

image

參考資料

http://blog.quasarinc.com/ssrs/sql-server-reporting-services-2012-anonymous-access/

0条评论
avatar