Microsoft ReportViewer控件READONLY

时间:2011-02-21 16:22:22

标签: .net winforms reporting credentials microsoft-reporting

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

现在,我需要做类似的事情,但我需要在Windows窗体中提供报告。我遇到的问题是我使用属于Microsoft.Reporting.WinForms命名空间的控件,属性ReportServerCredentials是READONLY。

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

3 个答案:

答案 0 :(得分:2)

它实际上不是只读的。

检查MSDN - ReportServerCredentials class

以下是设置凭据的方法。

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

编辑:

ReportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = reportCredentials.NetworkCredentials;

答案 1 :(得分:0)

这本身并没有真正回答你的问题,但我会跳过使用WinForms报表查看器。请参阅我的回答here了解原因,以及如何使用Web浏览器更好地完成此操作(您甚至可以利用已经访问过报告的Web应用程序)。

答案 2 :(得分:0)

Ue this code

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

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