2009-04-14 76 views
2

我有一臺服務器(Windows 2003/IIS 6)。此服務器在IIS中有幾個不同的「網站」設置。每個站點都在IIS中使用不同的主機頭(端口80)進行配置。另外,每個站點也可以通過指定的端口號訪問(無主機頭)。401從ASP.NET Web應用程序聯繫ASP.NET Web服務時未經授權

例如:

MySite1: http://apps.mysite1.comhttp://myserver:xxxx

MySite2: http://something.mysite2.comhttp://myserver:yyyy

我已經編輯我的主機文件(這是一個開發機)重定向每個站點的主機頭到本地計算機(127.0.0.1)。

我在一個IIS站點(mysite1)和另一個IIS站點(mysite2)中的ASP.NET 2.0 Web服務有一個ASP.NET 2.0網站。

MyWebService svc = new MyWebService(); 
//also have tried "http://myserver:yyyy/MyWebService.asmx" below 
svc.Url = "http://something.mysite2.com/MyWebService.asmx"; 
svc.Credentials = System.Net.CredentialCache.DefaultCredentials; 
svc.MyMethod(); 

所有站點都配置爲使用Windows集成安全性和ASP.NET配置爲使用Windows身份驗證<身份冒充=「真」/>:該網站與Web服務使用類似於下面的代碼進行通信。安全模型規定用戶登錄到Web應用程序應該一直通過Web服務進行身份驗證(然後直到底層數據庫,但這不一定與此相關)。

我有這個工作正常,但是我重建了我的Web服務(新方法),現在事情並沒有處理結果以任何Web服務調用結束401未經授權的消息。

這聽起來像是一個雙跳問題。我認爲這與Web服務不接受證書通過和新的通過具有挑戰性有關。只是不知道如何確認這一點。不知道爲什麼它會挑戰 - 雖然我作爲機器/域管理員登錄,並且IE配置爲在Internet選項>安全選項卡>自定義級別>自動登錄Intranet區域中傳遞憑證。是的,相關網站將添加到我的「Intranet區域」。

解決此問題的最佳方法是什麼?現在有什麼可能導致這種情況的想法?

TIA!

回答

1

這聽起來像是double-hop issue。要確認是否是雙跳問題,我將更改svc.Credentials =的行,並明確放入憑據進行測試,看看它是否有效。如果確實有效,那麼這是雙跳問題,您需要解決這個問題。

+0

是的,這也是我所懷疑的。我不知道如何解決,我猜是我的問題。 – Brian 2009-04-14 16:08:36

+0

這篇文章應該讓你繼續進行Kerberos委派。代表團允許第二個IIS相信第一個。如果您使用User creds進行連接,您可能還需要在數據庫服務器上執行此操作。 http://support.microsoft.com/kb/810572 – dar 2009-04-14 17:04:53

相關問題