2010-01-27 62 views
0

我們需要在具有服務器端php和php身份驗證的網站中使用SQL Server Reporting Services。目前我們有兩個單獨的登錄/認證 - php和SQL Server Reporting Services(我相信它使用類似於ASP.NET認證的東西)。我們只需要php登錄,我們也需要報告是安全的(即報告不能向匿名用戶開放)。從PHP調用SQL Server Reporting Services - 身份驗證問題

我們的一些報告只會在一天中的設定時間發生變化,因此我們可以通過編程生成pdf,將它們存儲在數據庫或某處,並讓php在用戶提出請求時檢索它們。這非常簡單。

問題出在一個報告總是在變化,因此我們需要在用戶發出請求時從數據庫中即時生成pdf。這需要php直接調用報告服務(目前我們有嵌入在網頁中的報告服務鏈接,用戶點擊這個鏈接,然後必須輸入二級報告服務/ windows-type登錄)。

爲了解決這個問題,我想我們可以在可執行文件中打包報告服務,然後讓PHP調用可執行文件 - 然後將可執行文件吐出來,然後將這個php傳回給用戶。我們甚至可以將報告服務封裝成只能從託管php的Web服務器訪問的CGI。有沒有人嘗試過這樣的事情?它會起作用嗎?它只需要PHP身份驗證,仍然是安全的?

Reporting Services的可能是2005年或者2008年或

回答

0

我有類似的情況,這對於現在的我剛剛分配第二,報告服務密碼,誰需要它的人照顧。就我而言,我的web應用程序會根據我們的Novell LDAP數據進行身份驗證,但似乎沒有辦法將其傳遞到報告服務框。我還沒有解決它,但我的想法是創建一個GUID或隨機字符串點擊報告生成按鈕,將它存儲在一個表中,將其添加到報告請求(查詢字符串或郵政),然後把條件在驅動報告的sproc中,以便如果該表中不存在該字符串,則不會返回任何數據。這些字符串可以定期刪除。 rube goldberg的種類,但可能比您提及的可執行封裝更容易,也可能比我嘗試構建自己的報告服務的ldap提供程序時最好,因爲這種情況下該用戶仍需要進行第二次登錄。

+0

感謝您的回答。因此,您是否將Reporting Services設置爲允許匿名訪問(即根本不需要第二次登錄,每個人都可以進入),並且GUID將充當安全密鑰? 這是一個有趣的想法。我認爲鑰匙需要傳遞給客戶端?如果是這樣,這是否仍然會導致安全漏洞,或者它會好嗎? – 2010-01-27 17:36:14

+0

重點需要允許匿名訪問。我不會說我真的認爲通過。我想這可以用於一個單獨的文件夾,這個文件夾可以包含在此基礎上運行的報告,從而允許其他文件夾使用更嚴格的權限。如果你想給超級用戶提供完整的報表管理器權限。 – 2010-01-27 19:52:55