花了我兩天的時間後,我找到了解決辦法。
web API的設置 在您的web API上啓用Windows身份驗證。
Web應用程序的設置 在您的web應用程序上啓用Windows身份驗證。 添加<identity impersonate="true" />
web.config的system.web。 添加
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
在web.config中
啓用Windows身份驗證和從IIS ASP.NET模擬。
用戶下面的代碼張貼在網頁API數據(以及類似的獲取)
using (var client = new WebClient { UseDefaultCredentials = true })
{
client.Headers.Add(HttpRequestHeader.ContentType, "application/xml; charset=utf-8");
byte[] responseArray = client.UploadData("URL of web API", "POST", Encoding.UTF8.GetBytes(XMLText));
string response = Encoding.ASCII.GetString(responseArray);
}
注:最重要的是始終通過IP撥打您的Web API,如果您使用的網址,你總是可以得到的401未授權錯誤。
謝謝@Anders。該網站和API正在不同的網站上運行。我會看看Kerberos。 – 2014-10-24 08:18:01
我想警告你,Kerberos代表團是不平凡的。我還沒有找到一個知道如何做或願意嘗試的IT部門。解決方法是使用服務帳戶,該帳戶有權訪問網站在調用API服務器到服務器時可以使用的所有內容。這不是最漂亮的解決方案,它需要檢入代碼,用戶登錄到網站才能從API獲取比他或她預期更多的信息。但至少它是一個工作選項,不需要對IT環境進行大量的侵入性修改。 – 2014-10-24 08:32:25
該鏈接的內容「已經退役」。 – KSwift87 2017-11-28 15:56:11