2013-05-14 76 views
0

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

现在有什么奇怪的是,我嵌入报表查看器控制到一个MVC应用程序。该应用程序配置了与请求一起发送的凭据。该应用程序使用Web服务URL来获取某些内容(获取报告,文件夹等列表)以及用于显示报告的“显示”网址。

当我在我的dev的机器,配置为与远程SSRS服务器上本地运行应用程序,一切工作正常。昨天我做了我的第一个应用程序部署到测试服务器,当我进行Web服务调用列出报告时,我得到'401未经授权'的响应代码。我不明白为什么在相同的情况下证书起作用,而在其他情况下则不起作用。我有双重和三重检查,我在每种情况下使用相同的域名,用户名和密码。

回答

1

SSRS有认证的很多层面:

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

I如果你正在向WCF服务或其他东西添加另一层,那么它可能是与该服务相关的凭证,而不是在它所期望的域帐户上运行。对于每个级别的SSRS都非常非常挑剔。太多了,我会说。如果您可以从一台服务器或开发盒运行代码,而不是另一台服务器,我会猜测服务或帐户与机器的访问级别不同。您是否可以在计算机上获得限制错误,使用该帐户登录,尝试访问报告的网址?

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

相关问题