[英]C# Windows Universal Application consuming WebAPI gives Unauthorized response
我正在嘗試使用Visual Studio 15在Windows 10的Windows通用應用程序中使用Web API。
我正在使用以下代碼從WebAPI獲取員工列表。
HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.BaseAddress = new Uri("http://localhost:59591/");
HttpResponseMessage response = client.GetAsync("api/Employee/GetAllEmployee").Result;
if (response.IsSuccessStatusCode)
{
var employeelist = response.Content.ReadAsStringAsync();
}
但作為回應,我越來越
狀態碼:401,ReasonPhrase:“未經授權”。
如果創建Windows窗體應用程序,則相同的代碼也可以正常工作。
為了在Windows Universal Application中使用Web API,我需要做些特定的事情嗎?
您無法從UWP應用程序訪問本地主機。 安全模型不允許這樣做。
您可以在此處獲取有關隔離如何工作的一些詳細信息:
網絡隔離和環回
IP回送地址和回送接口傳統上已用於網絡上不同應用程序之間的通信,以及本地計算機上多個應用程序內的進程間通信。
使用IP回送地址的網絡通信不能用於進程間通信(兩個不同的應用程序之間),因為這受到網絡隔離的限制。 在同一進程中,出於通信目的,允許在應用程序內使用IP回送地址進行網絡通信。
有關使開發人員能夠訪問應用之間的IP回送地址以進行調試的詳細信息,請參閱如何啟用回送和調試網絡隔離。
出於調試目的,您可以將其關閉。 您可以在這里找到一些文檔
開發人員還可以使用CheckNetIsolation.exe工具為應用程序手動添加環回豁免。
要使應用不受環回限制,必須提供程序包的應用ID。 下面的示例命令使應用不受環回限制。
CheckNetIsolation.exe LoopbackExempt –a –p = S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.