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) };