我有一種情況,我需要我的報表服務器或多或少可公開訪問,因爲我們在ASP.NET Web應用程序中使用ReportViewer控件,並且用戶組將訪問各種報表。如何使用SOAP API爲鏈接報告設置SSRS報告參數?
這將針對SQL Server 2008標準版運行。
安全性將通過創建鏈接報告(每個用戶一個,在運行時發佈,當他們從我們的Web應用程序請求報告時發佈)來處理,但我無法以編程方式設置鏈接報告參數值。
簡而言之,報表具有少量的保留參數名稱(例如UserID和LanguageID)。在運行時,Web應用程序將檢查用戶是否有鏈接的報告(對每個報告/用戶使用唯一鏈接的報告名稱),如果不存在,則創建一個。
這是使用SSRS SOAP API完成的,並且運行良好。我遇到的問題是設置鏈接報告的報告參數。
例如,如果我以系統管理員身份登錄,我只想查看報告並對報告查看器中的參數進行完全統治。如果我以「低」用戶身份登錄,我希望UserID參數在鏈接報告中設置爲我的ID,並且無法將用戶ID更改爲在其他用戶的報告中窺探。
這可以通過打開鏈接報告的屬性並設置參數默認值並取消選中「提示用戶」框在報告管理器中手動完成。
現在我正在嘗試使用SOAP API以編程方式執行該操作,並且似乎無法找到正確的方法來執行此操作。
我在CreateLinkedReport方法可以設置參數的一些地方閱讀提示,但我開始認爲這只是作者的誤解。儘管此方法確實接受Property []屬性,但這些屬性僅顯示提供報告元數據(如鏈接的報告名稱)。
是否有一個特殊的標記,我需要使用屬性名稱/值來指示屬性是一個報告參數?
任何想法,不勝感激。