5

以下のようなURLを使用してSSRSレポートにアクセスしようとしています

http://MyServerIP/ReportServer?/FolderName/ReportName&Param1=ParamValue&rs:Command=Render&rs:Format=HTML4.0&rc:Toolbar=false

上記の URL にアクセスしようとすると、ネットワーク資格情報を求められます。これにより、SSRS レポートのすべてのページがブラウザー ウィンドウに表示されます。

これらのコンテンツを webApp 内のポップアップ ウィンドウに表示したいと考えています。このため、jquery リクエストを作成してコンテンツを取得しようとしましたが、これを行うと 401 無許可エラーが発生します。jquery ajax get requestで資格情報を送信する方法があるかどうか知りたいです。

ターンアラウンドとして、以下の C# コードを使用してデータを取得しようとしましたが、どちらも役に立たず、同じ 401 エラーが発生しました

WebClient client = new WebClient();
client.Credentials = new NetworkCredential("username", "password", "domain");
divContents.InnerText = client.DownloadString(my report path);

SSRS 2008 R2 を使用しており、レポートのすべてのページをポップアップ ウィンドウに表示する必要があります。したがって、この方向へのすべての指針は大歓迎です。

最後にポイントを追加すると、私の Web アプリとレポートは同じドメインにある場合とない場合があります。

ありがとう、ラヴィ

4

3 に答える 3

1

資格情報を要求せずにセキュリティで保護されたレポートへのパブリック アクセスを許可する場合は、Report Viewer コントロールを使用できます。

  1. 新しい.aspxページを作成し、次のReportViewerようにコントロールを使用します。

    <rsweb:ReportViewer ID="MainReportViewer" runat="server" BackColor="White" 
        Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos=" (Collection)" 
        ProcessingMode="Remote" ShowBackButton="False" ShowFindControls="False" 
        ShowPageNavigationControls="False" SizeToReportContent="True" 
        ToolBarItemBorderColor="White" ToolBarItemHoverBackColor="White" 
        WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="100%">
            <ServerReport ReportServerUrl="" />
    </rsweb:ReportViewer>
    
  2. 以下のコードを.aspxページのコード ビハインドで使用して、レポート サーバー、ユーザー名、パスワードなどを [レポート ビューアー] で構成できます。

    protected void Page_Init(Object sender, EventArgs e)
    {
        string UserName = ConfigurationManager.AppSettings["SsrsUserName"];
        string Password = ConfigurationManager.AppSettings["SsrsPassword"];
        string Domain = ConfigurationManager.AppSettings["SsrsDomain"];
        string ReportServerRoot = ConfigurationManager.AppSettings["SsrsServerRoot"];
        string ReportServerPath = ConfigurationManager.AppSettings["SsrsReportServerPath"];
        MainReportViewer.ProcessingMode = ProcessingMode.Remote;
        IReportServerCredentials irsc = new CustomReportCredentials(UserName, Password, Domain);
        MainReportViewer.ServerReport.ReportServerCredentials = irsc;
        MainReportViewer.ServerReport.ReportServerUrl = new Uri(ReportServerRoot);
        MainReportViewer.ServerReport.ReportPath = ReportServerPath + "YourReportFileName";
    }
    
于 2014-08-29T08:39:53.593 に答える