我在最近属于Microsoft.Reporting.WebForms命名空间的网页上成功使用了Microsoft ReportViewer Control。我使用ReportViewer的一个名为Server.ReportServerCredentials的属性来设置凭据(域,用户和密码)。我已经能够显示远程服务器上的报告。
现在,我需要做类似的事情,但我需要在Windows窗体中提供报告。我遇到的问题是我使用属于Microsoft.Reporting.WinForms命名空间的控件,属性ReportServerCredentials是READONLY。
为什么对于一个控件,此属性是只读的而另一个不考虑您需要设置凭据来访问报告?我该如何解决这个问题?
答案 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
。