【发布时间】:2009-03-22 22:16:48
【问题描述】:
我是 C# 的新手,我的英语不太好 - 如果我错过了一点,请提前道歉。
我尝试使用ReportService 控件构建一个 ASP.NET 网站。您可能已经知道,SSRS 2008 不允许匿名登录。因此,我尝试将凭据传递给 SSRS,SSRS 将存储在我的网页中,以便用户无需登录即可查看报告。
我找到下面的代码并将其放在我的WebForm 上,但我遇到了报告参数问题。
如果报表参数有默认值,下面的代码 工作正常。
但是,如果我试图改变一个参数的值,整个页面是
刷新,在我点击“查看报告”按钮之前,全部
参数被重置为默认值或空值。
关于如何避免刷新整个页面或将登录信息传递给 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;
}
}
【问题讨论】:
-
您确定他们从 SSRS 2008 中删除了匿名身份验证吗?您可能只需要在 IIS 中配置它?
-
来自:blogs.msdn.com/jameswu/archive/2008/07/15/… 那么旧的匿名身份验证是 RS 2005 发生了什么?简短的回答是它不再受支持。
标签: c# asp.net reporting-services ssrs-2008