ASP.NET MVC 4 – 401访问被拒绝

我用一个get命令创建了一个非常简单的WebAPI,只返回一个整数。 当我在浏览器中运行它时,它工作得很好。 但是当我尝试从解决方案中的另一个项目有问题地访问时,我得到以下内容:

2013-05-15 17:46:47,811 – 响应:StatusCode:401,ReasonPhrase:’Access Denied’,版本:1.1,内容:System.Net.Http.StreamContent,Headers:

{

日期:2013年5月15日星期三16:46:47 GMT

服务器:Microsoft-IIS / 5.1

WWW-Authenticate:谈判

WWW-Authenticate:NTLM

连接:关闭

内容长度:4431

内容类型:text / html

}

这是我正在使用的代码。 真的很感激任何帮助。

var client = new HttpClient { BaseAddress = new Uri(_uri) }; client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = client.GetAsync(string.Format("api/Config/{0}", id)).Result; if (response.IsSuccessStatusCode) { var res = response.Content.ReadAsAsync().Result; return res; } 

由于响应表明您无权访问该资源,可能是因为您没有传递适当的凭据。 您的服务似乎已启用Windows身份validation。 尝试执行以下操作,看看它是否有效:

 HttpClientHandler hndlr = new HttpClientHandler(); hndlr.UseDefaultCredentials = true; var client = new HttpClient(hndlr) { BaseAddress = new Uri(_uri) };