SQL 2008,Report Builder 2.0的权限问题

时间:2011-01-11 11:38:41

标签: sql sql-server-2008 ssrs-2008 report builder

所以这里有恐怖故事的背景:

  • Win 2003 SP2 64bit在暴露于外部世界的VM上运行以进行Web访问。
  • 安装了针对纯模式的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已更改,因此只有< AuthenticationType>是< RSWindowsNTLM>因为< RSWindowsNegoiate>无法工作,因为它在互联网上,用户不会在同一个网络上(因此本地帐户myDemoUser)。
  • 网站应用的网址格式为:http://mysite.mydomain.co.uk/,其中指向报告生成器的链接格式为:http://mysite.mydomain.co.uk/services/reportbuilder/reportbuilder_2_0_0_0.application,在这种情况下,RS已配置为Web服务虚拟目录是“服务”。
  • 对于访问RS网络服务的ASPX页面,网站应用的web.config已设置为< identity impersonate =“true /> for< locations>。我甚至添加了< location path =” services / reportbuilder“>具有相同的功能,也允许匿名用户。

因此,经过上述所有操作后,我从一台不在网络上的机器上访问该网站,IE8提示用户名/密码,我输入servername \ myDemoUser和正确的密码。将显示主页,并正确显示RS的文件夹和报告列表。 HOWEVER 如果我单击RS报告生成器链接,我会看到它正在执行它的clickonce验证内容,但是几秒后它会显示一个简单的消息框,说明存在身份验证错误。然后,详细信息按钮显示一个带有一堆stacktrace内容的文本文件,其中最终表示服务器在访问上述.application文件时返回401。

我在Win 2003虚拟机上启用了登录失败审核功能,我可以看到,当clickonce失败时,它会尝试使用我登录到外部(到我的网络)计算机的本地计算机帐户而不是凭据我在测试时进入该机器的浏览器。

多次谷歌搜索和授予网络服务的权限,每个人等...在以后涉及的各种文件夹上没有任何报告生成器位不会因为权限或不正确的使用而无法通过clickonce安装。

我正在考虑改变RS中的某些内容以尝试向匿名者授予报表生成器的权限,但此时我非常悲观,我实际上会找到任何东西。令人烦恼的是,这个测试并不代表最终的事情(我们将在RS中使用自定义身份验证)但不幸的是我必须这样做,8(。

任何想法都会受到最高的赞赏。

1 个答案:

答案 0 :(得分:0)

事实证明,当您从未登录域的计算机访问该站点时,以这种方式使用假Windows身份验证时,clickOnce将无法正常工作,因为它不会传递您输入的详细信息进入浏览器。

所以解决方案是: 1)登录将访问您网站上的clickonce链接的计算机上的(任意)域。

2)在控制面板中,转到用户帐户(XP)/存储用户和密码(Win 2003),并管理用户(XP)的网络密码并添加URL,用户名和密码。 每当clickonce触发此URL时,它将传递指定的用户名/密码,而不是本地计算机帐户。

上述任何一种都可以解决这个问题。