簡體   English   中英

使用Windows API的C#Windows通用應用程序提供未經授權的響應

[英]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.

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