2011-01-11 48 views
1

所以這裏的恐怖故事有點背景的:暴露於外界網絡訪問虛擬機上運行權限問題,報表生成器2.0

  • 贏2003 SP2 64位。
  • SQL Server 2008標準SP2 64位,併爲本機模式(即非共享點模式)安裝了Reporting Services(RS)。
  • 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服務虛擬目錄爲「服務」。
  • 的網站應用程序的Web.config已被設置爲<身份冒充=「真/ >爲<爲訪問Web服務RS的ASPX頁面位置>。我甚至增加了一個<位置路徑=」服務/報表製作工具」 >具有同樣的事情,也允許匿名用戶。

所以畢竟上面我去從一臺機器的網站,是不是網絡,我得到IE8提示輸入用戶名/密碼,我在輸入servername \ myDemoUser和正確的密碼。主頁顯示並正確顯示來自RS的文件夾和報告的列表。但是如果我點擊RS報告生成器鏈接我得到彈出窗口說它正在執行clickonce verfication的東西,但幾秒鐘後,它顯示簡單的消息框說有認證錯誤。詳細信息按鈕隨後會顯示一個帶有一堆堆棧跟蹤內容的文本文件,其中最終表明服務器在訪問上面提到的.application文件時返回了401。

我打開了Win 2003虛擬機上登錄失敗審計,我可以看到,當clickonce失敗時,它試圖使用我登錄到外部(到我的網絡)計算機上的本地計算機帳戶而不是憑據測試時,我在該機器上輸入了瀏覽器。

許多谷歌搜索和授予網絡服務的權限,大家等...在後來涉及的各種文件夾上,沒有任何報告生成器位不會通過clickonce安裝,由於權限或不正確的使用。

我正在研究可能會改變RS中的某些內容,嘗試將權限授予報告生成器以匿名,但此時我非常悲觀,我實際上會發現任何內容。令人討厭的是這是一個測試,並不代表最終的事情(我們將在RS中使用自定義身份驗證),但不幸的是我必須這樣做,8(。

任何想法將不勝感激。

回答

0

事實證明,當通過這種方式使用虛假Windows身份驗證時,當您從未登錄到域的計算機訪問站點時,單擊一次將不起作用,因爲它不會傳遞您的詳細信息找到後進入瀏覽器。

因此,解決方案是: 1)登錄到要訪問站點上clickonce鏈接的計算機上的(任意)域。

2)在控制面板中進入用戶帳戶(XP)/存儲用戶和密碼(Win 2003),並管理用戶(XP)的網絡密碼並添加URL,用戶名和密碼。 只要clickonce啓動此URL,它就會通過指定的用戶名/密碼而不是本地計算機帳戶。

上述任何一種都可以解決這個問題。