2009-04-22 100 views
0

案例1.當我從我自己的PC上瀏覽一個名爲JOHNXP的小測試站點時(例如http://localhost/WebClient),我的.aspx頁面調用我的ASMX webservice獲取我的證書並將其傳遞給他們通過同一個域中的另一臺計算機(SERVERTRIM)上的另一個web服務。我可以看到我的請求導致SERVERTRIM計算機上的安全日誌條目和我的憑據。模擬在工作站A和B上使用相同證書授權失敗

案例2.我移動到同一個域中的另一臺PC,並使用我在個人桌面上使用的相同憑據登錄。當我瀏覽上面的同一個測試網站(此時爲http://johnxp/WebClient)時,我將此過濾回到我的.aspx頁面:

System.Web.Services.Protocols.SoapException:服務器無法處理請求。 ---> System.Net.WebException:請求失敗,HTTP狀態401:未授權

查看SERVERTRIM上的安全日誌,我注意到情況2中的訪問導致了ANONYMOUS LOGON,這似乎解釋了401 /未經授權。

我想讓我的web服務使用登錄的DOMAIN用戶的憑據,當我的WS在不同的服務器上調用供應商的web服務時。

我的ASMX webservice運行在我的桌面上(IIS 5.1 WinXP Pro - 機器名稱是JOHNXP)。我有啓用匿名UNCHECKED在每一個參與的服務器和我有這個在每個參與我的情況的web.config:

供應商的web服務上SERVERTRIM(運2003服務器)上運行,這也是ASMX和使用WSE 3.0 。

Wireshark和Netmon現在看起來對於我來說太強大了。我計算出「遠程」服務器(SERVERTRIM)上產生的不同LOGON是足夠的「證據」。上述所有機器都在同一個域中,但我希望在SERVERTRIM上保留「遠程」Web服務,並且如果可能,我將中間Web服務保留在同一域中的不同服務器上。這種情況是否要求我必須深入「授權」?當網絡請求在域中的另一臺計算機上啓動時,監控爲什麼相同憑據導致匿名登錄的最簡單工具是什麼?

回答

0

我的認證知識是有點朦朧,但如果我理解正確的話你的描述:在第一種情況下

  • ,你瀏覽到localhost,它是模仿調用者,然後調用Web在另一臺機器上的服務。模擬是在與客戶端相同的機器上完成的。我相信在這種情況下,模擬應用程序不需要位於受委託信任的計算機上(因爲它已經與客戶機相同)。

  • 在第二種情況下,您正在瀏覽到不同的 PC,它在嘗試在呼叫第三臺PC時模擬呼叫者。在這種情況下,中間的個人電腦需要信任委派(如果它是一個開發工作站,這可能不會)。

+0

喬,我想你已經正確描述了它。 「中間的PC」名稱是JOHNXP,並且已標記爲「委託信任計算機」。此外,運行在JOHNXP上的webservice從VisualStudio2005啓動,而我以CBMIWEB \ johna的身份登錄。當代理文檔稱「配置運行服務器進程的用戶帳戶」時,我將其表示爲CBMIWEB \ johna,並且ActiveDirectoy現在已檢查「Account was trusted for delegation」。我已經測試了兩種方法,但仍然失敗。 – 2009-04-23 18:36:19