我已經爲SSRS 2008r2編寫並部署了一個自定義安全擴展,除了試圖從BIDS 2008/Visual Studio內部署報告外,它工作得非常好。如何使用SSRS和BIDS自定義安全擴展訪問用戶角色/權限?
安全性擴展的體系結構通過多個權威機構處理登錄,我通過在LogonUser()中創建用戶會話來管理此問題,將其保存在數據庫中,然後使用RS Web服務的客戶機代理類加載會話一個通過cookie傳遞給服務的UID,然後重寫身份驗證票據以包含當前用戶的會話UID和用戶角色。這些值可以在自定義授權擴展中用於管理SSRS操作和對象的用戶權限。
我遇到的問題是,它在部署來自BIDS的報告時不起作用。它直接訪問服務,因此不需要服務代理類。我曾嘗試在HTTP上下文中處理身份驗證後事件,但會話cookie不會由RS服務持久保存,因此我無法訪問會話值。
那麼我錯過了什麼?是否有另一種方法來控制用戶角色&權限,而不需要在任何地方硬編碼用戶名?就像我說的那樣,登錄可以使用多個權限來完成,因此僅通過用戶名來管理權限是不可能的(並且它的思想讓我感到畏縮)。
我想到的一個可能的解決方案是爲BIDS編寫一個擴展或插件,它本質上充當了Web服務的代理,這將允許我更多地控制登錄過程,但我不知道這是否可行(谷歌沒有幫助...)
任何幫助將受到感謝!
你有沒有得到任何解決方案的完整源代碼? – 2015-08-18 20:49:14