使用WebAPI的C#Windows通用应用程序给出未经授权的响应

使用WebAPI的C#Windows通用应用程序给出未经授权的响应,c#,asp.net-web-api2,win-universal-app,C#,Asp.net Web Api2,Win Universal App,我正在尝试使用Visual Studio 15在windows 10上的windows通用应用程序中使用Web API 我使用以下代码从WebAPI获取员工列表 HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.

我正在尝试使用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,短语:“未经授权”

如果我创建Windows窗体应用程序,同样的代码也可以正常工作


要在Windows Universal Application中使用Web API,我需要做什么特定的事情吗?

您无法从UWP应用程序访问本地主机。安全模型不允许这样做

您可以获得有关隔离工作原理的一些详细信息:

网络隔离与环回

传统上,IP环回地址和环回接口 用于通过网络在不同应用程序之间进行通信 网络,以及多个进程内的进程间通信 本地计算机上的应用程序

使用IP环回地址的网络通信不能用于 进程间通信(在两个不同的应用程序之间),因为 受网络隔离的限制。使用IP的网络通信 允许在同一进程内的应用内为 通信目的

有关启用开发人员访问IP环回的更多信息 用于调试目的的应用之间的地址,请参见如何启用 环回和调试网络隔离

出于调试目的,可以将其关闭。您可以找到一些文档

开发人员还可以使用CheckNetIsolation.exe工具手动 为应用程序添加环回豁免

要免除应用程序的环回限制,请为 必须提供包装。下面的示例命令豁免应用程序 从环回限制

CheckNetIsolation.exe环回豁免–a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299


这意味着您需要在请求中传递一个
身份验证
头来验证客户端。服务器不返回一个
WWW-Authenticate
头作为响应吗?您是否可以控制服务器?控制器的名称是什么
api/Employee/GetAllEmployee
可能错误。请使用控制器名称而不是
api