大規模部門のSalesSummaryというレポートがあるとします。この部門には、各製品ごとに多数の小さなチームがあります。他のチームの製品ではなく、自分の製品に関する情報を見ることができるはずです。また、これらのチームごとに1つのドメイングループがあります。Reporting Servicesのパラメータに基づく制御レポートの許可
多くの製品があるため、各チームのSalesSummaryレポートをコピーして権限を設定するのは最良の選択肢ではありません。私は以下のRSに似たコードを使うことを考えていましたが、うまくいきません。 RSでは、System.Security.Principal.WindowsPrincipalはデフォルトで無効になっているようです。
Public Function isPermitted() As Boolean
Dim Principal As New System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent())
If (Principal.IsInRole("group_prod")) Then
Return true
Else
Return false
End If
End Function
また、私はSQLサーバへRSからユーザIDを送信することができ、そして私のSPの内側に私はアクティブディレクトリを照会するには、以下のようなコードを使用することができると思いました。これはセキュリティの制限のためにも機能しません。
SELECT
*
FROM OPENQUERY(ADSI,'SELECT cn, ADsPath FROM ''LDAP://DC=Fabricam,DC=com'' WHERE objectCategory=''group''')
この目標を達成するための簡単な方法はありますか?
ありがとうございました!
私も同様の状況に陥りました。私はReportViewerコントロールを使用して、レポートサーバーへのリモートアクセスを制御し、個別のパラメータを渡しました。 – dotjoe
レポートをエクスポートするとどのように機能しますか? ReportViewerを介してレポートをエクスポートするか、URLをRSに送信しますか。私は、人々がクエリー・ストリングを構築したり、ポスト変数を変更したりして、彼らの方法をハックすることを望んでいません。 – Reza
AFAIKでは、ReportViewerもエクスポートを行います。ユーザーはレポートサーバーにアクセスすることさえできません。離散パラメータが安全であることを確認するだけで、パラメータのプロンプト段階でユーザが変更することはできません。 – dotjoe