从报表服务器访问报表时出现以下错误。我正在使用Windows应用程序访问我的报告。这是我的代码:
private void rptviewer_Click(object sender, EventArgs e)
{
string reportName = "Crime_Traking_Report";
string reporturl = @"http://13.800.91.136/ReportServer";
string reportpath = @"/iSROReportsRK7/";
reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
reportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials("isro", "password1209083$", "Rocket");
try
{
reportViewer1.ServerReport.ReportServerUrl = new Uri(reporturl);
}
catch (UriFormatException)
{
Console.WriteLine("Bad Url format");
}
reportViewer1.ServerReport.ReportPath = reportpath + reportName;
reportViewer1.ProcessingMode = ProcessingMode.Remote;
reportViewer1.ServerReport.Refresh();
}
public class ReportServerCredentials : IReportServerCredentials
{
private string _UserName;
private string _PassWord;
private string _DomainName;
public ReportServerCredentials(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;
}
}
我得到的错误是:错误1属性或索引器'Microsoft.Reporting.WinForms.ServerReport.ReportServerCredentials'无法分配 - 它是只读的
错误2无法将类型'Daily_Crime_Traking.Form1.ReportServerCredentials'隐式转换为'Microsoft.Reporting.WinForms.ReportServerCredentials'
我尝试将类名更改为CustomServerCRedintials以避免nameConflict问题,然后也是我想要解决此问题的同类错误。
答案 0 :(得分:0)
我用它来设置凭据
reportViewer1.ServerReport.SetDataSourceCredentials({ new DataSourceCredentials {
Name = _DataSourceName,
UserId =_UserName,
Password = _PassWord
} })
请参阅:ServerReport.SetDataSourceCredentials Method
DataSourceCredentials Members
Reporting Services Report Viewer using SQL Authentication