【发布时间】:2011-01-11 23:38:28
【问题描述】:
所以这里有一些关于恐怖故事的背景:
- Win 2003 SP2 64 位运行在暴露于外部世界以进行 Web 访问的 VM 上。
- 安装了 Reporting Services (RS) 的 SQL Server 2008 Std SP2 64 位,用于本机模式(即非共享点模式)。
- IIS 6 .NET 3.5 网站应用程序编写为使用来自 RS 的 Web 服务。该网站已设置为使用 Windows 身份验证,仅此而已。
- 为了保存编写自定义身份验证,因为我在此演示中不需要它,我在 Win 2003 中设置了一个本地帐户,即 servername\myDemoUser,有效地允许伪造 Windows 身份验证。
- Default.aspx 列出 RS 上的文件夹以及每个文件夹中的报告。它还有一个链接到服务器上的 Report Builder 2。
- rsreportserver.config 已更改,因此唯一的
是 ,因为 无法工作,因为它位于 Internet 上,并且用户不会在同一个网络上(因此本地帐户 myDemoUser) . - 网站应用程序的 url 格式为:http://mysite.mydomain.co.uk/,其上指向报表生成器的链接格式为:http://mysite.mydomain.co.uk/services/reportbuilder/reportbuilder_2_0_0_0.application,在这种情况下,RS 已配置,因此 Web 服务虚拟目录为“services ”。
- 对于访问 RS Web 服务的 ASPX 页面,网站应用程序的 web.config 已设置为
使用相同的东西,也允许匿名用户。
因此,在完成上述所有操作后,我从一台不在网络上的机器访问该站点,IE8 提示我输入用户名/密码,然后我输入 servername\myDemoUser 和正确的密码。主页显示并正确显示来自 RS 的文件夹和报告列表。 但是如果我单击 RS 报告生成器链接,我会看到弹出窗口说它正在执行它的 clickonce 验证内容,但几秒钟后它会显示简单的消息框,说明存在验证错误。然后详细信息按钮会显示一个包含一堆堆栈跟踪内容的文本文件,其中最终表明服务器在访问上述 .application 文件时返回了 401。
我为 Win 2003 VM 上的登录打开了失败审核,我可以看到,当 clickonce 失败时,它正在尝试使用我在外部(到我的网络)机器上登录的本地机器帐户,而不是我的凭据测试时输入该机器上的浏览器。
大量谷歌搜索和授予网络服务、每个人等的权限...在以后涉及的各种文件夹上,由于权限或使用不正确,报表生成器位不会通过 clickonce 安装。
我正在考虑是否可以更改 RS 中的某些内容,以尝试将报告生成器的权限授予匿名但此时我非常悲观,我实际上会找到任何东西。令人讨厌的是,这是一个不代表最终结果的测试(我们将在 RS 中使用自定义身份验证)但不幸的是我必须这样做,8(。
任何想法都将不胜感激。
【问题讨论】:
标签: sql sql-server-2008 ssrs-2008 report builder