Я понимаю, что локально он работает с текущим пользователем, но я не знаю, как авторизовать пул приложений ...
Как говорят poke и lex, если вы размещены на IIS, DefaultCredentials будет удостоверением пула приложений, а не учетной записью пользователя.
Если вы хотите узнать, как изменить удостоверение пула приложений, я предлагаю вам выполнить следующие шаги:
1 .Откройте консоль управления IIS.
2.Выберите пул приложений и дополнительные настройки
3.Установите идентификатор пула приложений использовать учетную запись домена.
Обновление:
Если вы хотите использовать учетные данные пользователя для доступа к другим API, я мог бы попытаться использовать Олицетворение .
var user = (WindowsIdentity)User.Identity;
WindowsIdentity.RunImpersonated(user.AccessToken, () =>
{
var impersonatedUser = WindowsIdentity.GetCurrent();
var message =
$"User: {impersonatedUser.Name}\t" +
$"State: {impersonatedUser.ImpersonationLevel}";
//ViewBag.UseImper = message;
HttpClient Client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });
//Client.BaseAddress = new Uri("http://localhost:44331");
Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
Client.DefaultRequestHeaders.Add("Application-Name", Assembly.GetExecutingAssembly().GetName().Name);
var response = Client.GetAsync("http://127.0.0.1:44319/api/values").Result;
int i = 0;
});