asp.net - 将 SSRS 与 ASP.Net ReportViewer 一起使用

标签 asp.net authentication reporting-services reportviewer ssrs-2008

我已经在我的本地主机上设置了 SSRS,并使用 BIDS 创建了一些关于它们的报告。它们从部署 SSRS 的同一个 SQL Server 访问数据,当我预览它们时,它们运行良好。然后我将它们部署到我的本地主机 SSRS 并通过 ReportManager Web 界面访问它们,它们再次运行得很好。最后,我将它们部署到我的托管服务提供商的 SSRS。同样的交易;良好的数据连接性,在 ReportManager 中看起来很棒。

我第一次通过任一系统上的 ReportManager 访问它们时,它需要我的用户名和密码,而在我的笔记本电脑上,这只是我的帐户登录名和密码。对于我的托管服务提供商,这是我为他们登录的帐户。

我的问题是当我尝试使用 ASP.Net 中的 ReportViewer 控件显示报告时。很多时候,当它尝试呈现时,我会收到“错误登录”或“401:未经授权”而不是我的报告。经过大量的阅读和思考,我认为问题在于我不需要登录到 SQL Server,而是登录到我的报告公开的网站(Web 服务?)。现在,如果我根本不提供任何凭据,我可以在 ReportViewer(通常)中获取我的本地报告。但是,当我将报告部署到远程服务器时,这不再起作用。

经过一番研究,我创建了一个实现 IReportServerCredentials 的类并尝试使用它来传递用户名和密码,但这似乎不起作用。我很困惑这些凭据是用于数据源还是用于 Web 服务。

如果有人能告诉我如何让 ReportViewer 登录到 SSRS Web 服务,我将不胜感激。

最佳答案

假设您已经在查看器上设置了 ProcessingMode="Remote"属性,那么您可能遇到了身份验证问题。在远程模式下使用报表查看器时,报表由运行 ASP.Net 的帐户在 SSRS 上执行。此帐户必须有权访问报告服务器和您要运行的报告。可能发生的情况是 ASP.Net 在无法访问 SSRS 的帐户下运行。

如果您希望能够为报告查看器设置凭据,请查看 this thread获取解决方案和示例代码。

关于asp.net - 将 SSRS 与 ASP.Net ReportViewer 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067976/

相关文章:

rest - 如何延长文档数据库 REST API 资源 token 的有效期

javascript - 我应该在 2019 年将我的 JWT 存储在哪里,localStorage 真的不安全吗?

reporting-services - 计算 SSRS 中的中位数

asp.net - 无需重新发布即可从 CodeBehind 跳转到 Anchor

c# - 如何使用 C# 比较两个 XML 文件并添加缺失的元素

rest - 授权 REST 请求

c# - 使用 Entity Framework 作为 SSRS 数据源(.rdl 文件)

reporting-services - 表达式中的 SSRS concat 字符串

c# - 如何通过在类中创建的方法在表单上创建按钮?

c# - 通过lambda表达式引发异常时如何在asp.net web api中全局处理异常