0

我有一个 SSRS 服务器设置为使用基本身份验证 - 使用用户名和密码。当我访问 Web 管理界面 ( https://alpha.myserver.com/Reports ) 时,我会看到一个用户名/密码对话框,输入我设置的用户名和密码,系统就会允许我访问。同样,如果我访问 Web 服务 URL ( https://alpha.myserver.com/reportservice ),我会看到相同的登录对话框,然后系统会给我访问权限。

现在奇怪的是我将报表查看器控件嵌入到 MVC 应用程序中。该应用程序已配置与请求一起发送的凭据。该应用程序将 Web 服务 URL 用于某些事情(获取报告、文件夹等的列表)和用于显示报告的“显示”URL。

当我在我的开发机器上本地运行应用程序并配置为与远程 SSRS 服务器通信时,一切正常。昨天,我首次将应用程序部署到测试服务器,当我调用 Web 服务列出报告时,我收到了“401 未授权”响应代码。我不明白为什么在相同的情况下凭据有效,而在其他情况下则无效。我已经两次和三次检查我在每种情况下都使用相同的域、用户名和密码。

4

1 回答 1

1

SSRS 有许多级别的身份验证:

  1. 托管服务的帐户
  2. 您的“数据源”连接字符串
  3. 用于访问 Web 服务的凭据
  4. 文件夹和项目级别(数据源、数据集、报表等)的项目级别权限的凭据

如果您要为此添加另一层,例如 WCF 服务或其他内容,则可能是与该服务相关的凭据,而该服务未在它所期望的域帐户上运行。SSRS 对每个级别的一切都非常非常挑剔。太多了,我想说。如果您可以从一台服务器或开发盒运行代码而不是另一个,我猜想服务或帐户与机器的访问级别不同。您可以在收到限制错误的机器上使用该帐户登录,然后尝试访问报告的 URL 吗?

我也会尝试让数据源使用嵌入其中的连接字符串。除非安全问题是您希望提示用户额外安全的问题,否则您可以在单个项目上设置安全性,但将数据源配置为自动身份验证。在设计器中单击数据源并选择“存储在安全服务器中的凭据”来执行此操作。

于 2013-05-14T16:19:11.073 回答