21

私は C# の初心者で、英語はあまり得意ではありません。

コントロールを使用して ASP.NET Web サイトを構築しようとしましたReportService。ご存知かもしれませんが、SSRS 2008 では匿名ログインは許可されていません。そのため、ユーザーがログインせずにレポートを表示できるように、Web ページ内に保存される資格情報を SSRS に渡そうとしました。

以下のコードを見つけて に配置しましたWebFormが、レポート パラメータに問題があります。

  • レポート パラメータにデフォルト値がある場合、以下のコードは正常に機能します。

  • しかし、パラメーターの値を変更しようとすると、ページ全体が
    更新され、[レポートの表示] ボタンをクリックする前に、すべての
    パラメーターが既定値または null 値にリセットされます。

ページ全体を更新しないようにする方法、またはログイン情報を SSRS に渡す別の方法について何か提案はありますか? よろしくお願いします。

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using Microsoft.Reporting.WebForms;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ReportViewer1.Width = 800;
        ReportViewer1.Height = 600;
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        IReportServerCredentials irsc =new CustomReportCredentials("administrator", "MYpassworw", "domena");
        ReportViewer1.ServerReport.ReportServerCredentials = irsc;
        ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://192.168.0.1/ReportServer/");
        ReportViewer1.ServerReport.ReportPath = "/autonarudzba/listanarudzbi";
        ReportViewer1.ServerReport.Refresh();
    }
}

public class CustomReportCredentials : IReportServerCredentials
{
     private string _UserName;
     private string _PassWord;
     private string _DomainName;

     public CustomReportCredentials(string UserName, string PassWord, string DomainName)
     {
        _UserName = UserName;
        _PassWord = PassWord;
        _DomainName = DomainName;
     }

     public System.Security.Principal.WindowsIdentity ImpersonationUser
     { 
        get { return null; } 
     } 

     public ICredentials NetworkCredentials
     {
        get { return new NetworkCredential(_UserName, _PassWord, _DomainName); }
     }

     public bool GetFormsCredentials(out Cookie authCookie, out string user,
      out string password, out string authority)
     {
        authCookie = null;
        user = password = authority = null;
        return false;
     }
}
4

4 に答える 4

0

新しい関数を作成し、プロパティ、イベント、reportViewer のデザイン ビューで取り上げました。(INIT i を選択中)

その後、ページは正常に機能し、パラメーターの値を変更できます。

Default.aspx は次のようになります。

    </head>
      <body>
        <form id="form1" runat="server">
         <div>
            <rsweb:ReportViewer ID="ReportViewer1" runat="server" onload="Admir">
            </rsweb:ReportViewer>
         </div>
       </form>
    </body>

Default.aspx.cs は次のようになります。

 public void Admir(object sender, EventArgs e)
    {
        ReportViewer1.Width = 800;
        ReportViewer1.Height = 600;
        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        IReportServerCredentials irsc = new CustomReportCredentials("administrator", "mypass", "domena");
        ReportViewer1.ServerReport.ReportServerCredentials = irsc;
        ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://192.168.0.1/ReportServer/");
        ReportViewer1.ServerReport.ReportPath = "/autonarudzba/listanarudzbi";
        ReportViewer1.ServerReport.Refresh();

    }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
于 2009-04-16T08:45:26.357 に答える