我在本地主机上设置了SSRS,并使用BIDS为它们创建了几个报告。他们从部署SSRS的同一个SQL Server访问数据,当我预览它们时,它们运行良好。然后,我将它们部署到我的本地主机SSRS,并通过ReportManager Web界面访问它们,它们再次运行得很好。最后,我将它们部署到我的托管服务提供商的SSRS。同样的交易;良好的数据连接性,在ReportManager中看起来很棒。在ASP.Net中使用SSRS ReportViewer
第一次通过任一系统上的ReportManager访问它们时,它需要我的用户名和密码,这在我的笔记本电脑上只是我的帐户登录名和密码。对于我的托管服务提供商,这是我的帐号登录。
我的问题是当我尝试使用ASP.Net中的ReportViewer控件显示报表时。很多时候,当它尝试渲染时,我会得到一个“错误登录”或“401:未经授权”而不是我的报告。经过大量的阅读和思考之后,我认为问题在于我不需要登录SQL Server,而是登录我的报告所在的网站(网络服务?)。现在,如果我根本没有提供任何证书,我可以在ReportViewer中获取本地报告(通常)。但是,当我将报告部署到远程服务器时,这不再起作用。
经过一番研究,我创建了一个实现IReportServerCredentials的类,并尝试使用它来传入用户名和密码,但这似乎不起作用。这些证书是否应该用于数据源或Web服务,这让我感到困惑。
如果有人可以告诉我如何让ReportViewer登录到SSRS Web服务,我非常感谢。
事实上,当我部署到另一个临时位置时,我收到了一个错误,表示我使用的NT帐户没有执行该操作的权限。了解模拟和我的应用程序运行的帐户是我需要关注的更多内容。在今天的最后,我能够通过添加“浏览器”的“BUILTIN \ Users”角色来运行这个东西。它有效,但我并不疯狂,因为我认为它基本上意味着报告现在不会被锁定。我将继续追求我在这里得到的答案。 – 2010-01-15 04:56:31
最后,我最终通过检查我更仔细地构建的凭证类,并将其与我知道工作的示例代码进行比较,从而发现了它。事实证明,我从我的GetFormsCredentials()方法返回“True”。因为我从来没有打算使用表单身份验证,所以我应该返回“False”。“所有”out“param对该方法都设置为NULL,因此认证从未正确完成,并且我没有意识到它。 – 2010-01-18 01:21:52
太棒了。当我们尝试将SSRS与我们的集成时遇到了相同的问题最终我们能够获得正确的权限,但这很痛苦。 – jvilalta 2010-01-18 01:50:21