【问题标题】:Microsoft ReportViewer Control READONLYMicrosoft ReportViewer 控件只读
【发布时间】:2011-02-21 16:22:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: .net winforms reporting credentials microsoft-reporting


    【解决方案1】:

    它实际上不是只读的。

    检查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;
    

    【讨论】:

      【解决方案2】:

      这本身并不能真正回答您的问题,但我会跳过使用 WinForms 报告查看器。请参阅我的回答 here 了解原因以及如何使用 Web 浏览器更好地做到这一点(您甚至可以利用已经访问报告的 Web 应用程序)。

      【讨论】:

      • 谢谢。我正在考虑将其作为替代方案。但是,我必须能够设置reportservercredentials 否则windows 窗体报表服务器控件是无用的! (?)
      【解决方案3】:

      使用此代码

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

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

      【讨论】:

        猜你喜欢
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 2012-04-08
        • 2014-05-31
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 2013-06-27
        相关资源
        最近更新 更多