1

ドメイン アカウントを使用して構成されたアプリケーション プールを持つ Web アプリケーションがあります。SSRS では、ドメイン アカウントにフォルダーへのブラウザー アクセス権が付与され、SSRS レポートは適切な資格情報で構成されます。

私の質問は、SSRS レポートが Web アプリケーションから起動された場合、SSRS レポートはドメイン アカウントまたは私のアカウントで開かれるかということです。現在、\ にはレポートの場所にアクセスするための十分な権限がないため、エラー メッセージが表示されています。

4

1 に答える 1

3

SSRS アドレスとともに Web 構成で固定ユーザーを設定するだけです。このようにして、サイトを実行しているユーザーに依存する代わりに、サイトが使用するデフォルトを設定します。

WPF アプリの例ですが、コード ビハインドでは ASP.NET と非常によく似ています。

<Button x:Name="btnGetViewerRemoteData" Content="Remote" Click="ReportViewerRemote_Load"/>

コード ビハインド内の要素の参照名。'Microsoft.Reporting.WinForms' (または同等の ASP.NET) の名前空間をインポートしてください。

    private void ResetReportViewer(ProcessingMode mode)
    {
        this.reportViewer.Clear();
        this.reportViewer.LocalReport.DataSources.Clear();
        this.reportViewer.ProcessingMode = mode;
    }


    private ICredentials giveuser(string aUser, string aPassword, string aDomain)
    {
        return new NetworkCredential(aUser, aPassword, aDomain);
    }

    private void ReportViewerRemoteWithCred_Load(object sender, EventArgs e)
    {
        ResetReportViewer(ProcessingMode.Remote);
        var user = giveuser("User", "Password", "Domain");
        reportViewer.ServerReport.ReportServerCredentials.ImpersonationUser = (System.Security.Principal.WindowsIdentity)user;
        ;

        reportViewer.ServerReport.ReportServerUrl = new Uri(@"http:// (server)/ReportServer");

        reportViewer.ServerReport.ReportPath = "/Test/ComboTest";

        DataSourceCredentials dsCrendtials = new DataSourceCredentials();
        dsCrendtials.Name = "DataSource1";
        dsCrendtials.UserId = "User";
        dsCrendtials.Password = "Password";
        reportViewer.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] { dsCrendtials });

        reportViewer.RefreshReport();
    }

例をハードコーディングしましたが、サーバー、ユーザー、およびパスワードを構成ファイルに含めることができます。組織によってはパスワードのセキュリティが懸念される場合があるため、最初にパスワードをハードコードするか、マスクすることをお勧めします。

于 2013-09-30T17:55:40.497 に答える