簡體   English   中英

401從ASP.NET Web應用程序聯系ASP.NET Web服務時未經授權

[英]401 Unauthorized when contacting ASP.NET web service from ASP.NET web application

我有一台服務器(Windows 2003 / IIS 6)。 該服務器在IIS中具有一些不同的“網站”設置。 每個站點都在IIS中配置了不同的主機頭(端口80)。 此外,還可以通過指定的端口號(沒有主機頭)訪問每個站點。

例如:

MySite1: http://apps.mysite1.comHTTP:// MYSERVER:XXXX

MySite2: http://something.mysite2.comHTTP:// MYSERVER:YYYY

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

我在一個IIS站點(mysite1)中有一個ASP.NET 2.0網站,在另一個IIS站點(mysite2)中有ASP.NET 2.0 Web服務。 該網站使用類似於以下內容的代碼與Web服務進行通信:

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 Integrated Security,ASP.NET配置為使用<identity impersonate =“ true” />進行Windows身份驗證。 安全模型規定,登錄到Web應用程序的用戶應該一直進行身份驗證,直到Web服務(然后再到基礎數據庫),但這在這里不一定是必需的。

我的工作正常,但是我重新構建了Web服務(新方法),現在事情變得不順利了,任何以401未經授權的消息結尾的Web服務調用都沒有結果。

聽起來確實像是兩跳問題。 我相信這與Web服務有關,它不接受正在傳遞的憑證,並且對於要傳遞的新憑證具有挑戰性。 只是不確定如何確認這一點。 但不確定為什么會挑戰-我以計算機/域管理員身份登錄,並且IE配置為在“ Internet選項”>“安全性”選項卡>“自定義級別”>“ Intranet”區域中的“自動登錄”中傳遞憑據。 是的,相關站點已添加到我的“內部網區域”。

解決此問題的最佳方法是什么? 關於什么可能造成這種情況的任何想法?

TIA!

這聽起來像是兩跳問題 為了確認是否是雙跳問題,我將更改讀取svc.Credentials =的行,並顯式放入憑據進行測試,然后看是否有效。 如果確實有效,那么這就是雙重問題,您將需要解決該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM