У меня есть приложение MVC и связанный с ним проект веб-API, которые размещены на удаленном сервере в IIS. Они используют один и тот же пул приложений. Всякий раз, когда я пытаюсь выполнить вызов веб-API из приложения MVC, я получаю сообщение об ошибке 403, которое, по-видимому, связано с неправильными учетными данными, переданными HttpClientHandler. У меня есть
UseDefaultCredentials = true
а я пробовал ставить
Credentials = CredentialCache.DefaultNetworkCredentials
но ни один из них не позволяет пройти запрос API.
Настройка пула приложений на использование моего имени пользователя/пароля AD позволяет проходить всем запросам API, а также вызов API непосредственно из Postman возвращает данные правильно.
Я предполагаю, что IIS AppPool [имя пула] перенаправляется в запросе, а правильные учетные данные никогда не передаются. Можно ли как-то обойти это, не делая API небезопасным (т.е. только несколько доменных групп должны иметь к нему доступ)?
Пример вызова, который я делаю в API из приложения MVC
public async Task<HttpResponseMessage> CreateIncident(Incident model)
{
using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }))
{
var newIncident = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await client.PostAsync(hostUri, newIncident);
return response;
}
}