1

我在最近属于 Microsoft.Reporting.WebForms 命名空间的网页上成功使用了 Microsoft ReportViewer 控件。我使用 ReportViewer 的一个名为 Server.ReportServerCredentials 的属性来设置凭据(域、用户和密码)。我已经能够显示远程服务器上的报告。

现在,我需要做类似的事情,但我需要 Windows 形式的报告。我遇到的问题是我正在使用属于 Microsoft.Reporting.WinForms 命名空间的控件,并且属性 ReportServerCredentials 是只读的。

为什么对于一个控件,此属性是只读的,而另一个不考虑您需要设置凭据来访问报告?我该如何解决这个问题?

4

3 回答 3

2

它实际上不是只读的。

检查MSDN-ReportServerCredentials 类

以下是设置凭据的方法。

ReportServerCredentials reportCredentials = new ReportServerCredentials();
//SET THE CREDENTIALS HERE A LA reportCredentials.ImpersonateUser etc.
rvReportViewerControl.ServerReport.ReportServerCredentials = reportCredentials;

编辑:

ReportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = reportCredentials.NetworkCredentials;
于 2011-02-22T17:13:15.687 回答
0

这本身并不能真正回答您的问题,但我会跳过使用 WinForms 报告查看器。请在此处查看我的答案,了解原因以及如何使用 Web 浏览器以更好的方式进行操作(您甚至可以利用已经访问报告的 Web 应用程序)。

于 2011-02-21T18:32:53.400 回答
0

使用此代码

dim myCred As NetworkCredential = New NetworkCredential("mmmmmm", "*****", "----")
ReportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = myCred

ReportViewer与需要您提供接口实现的控件的 webforms 版本不同,IReportServerCredentials报表查看器的 winforms 版本ReportServerCredentials直接实现。在您的情况下,您可以将您的NetworkCredential对象分配给ReportViewer.ServerReport.ReportServerCredentials.NetworkCredentials.

于 2013-11-03T15:57:37.093 回答