2013-05-15 9 views
1

Я создал очень простой WebAPI с одной командой get, которая возвращает целое число. Он отлично работает, когда я запускаю его в браузере. Но когда я пытаюсь получить доступ к проблеме из другого проекта в решении, я получаю следующее:ASP.NET MVC 4 - 401 Access Denied

2013-05-15 17: 46: 47,811 - Response: StatusCode: 401, ReasonPhrase: «Access Denied», версия: 1.1, Содержание: System.Net.Http.StreamContent, заголовки:

{

Дата: Ср, 15 мая 2013 16:46:47 GMT

Сервер: Microsoft-IIS/5.1

WWW -Authenticate: Negotiate

WWW-Authenticate: NTLM

Подключение: закрыть

Content-Length: 4431

Content-Type: Текст/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<int>().Result; 
    return res; 
} 

ответ

7

В ответ указывает, что у вас нет прав доступа к ресурсу, вероятно, из-за того, что вы не передаете соответствующие учетные данные. Похоже, ваша служба включена с проверкой подлинности Windows. Попробуйте сделать следующее и посмотреть, работает ли он:

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

Это сделало трюк, благодаря миллиону. – RagtimeWilly

+0

Решение выше применяется, если вы используете вызов API MVC Core Web и получаете 401 «Несанкционированные» ответы. – Francis