#angular #asp.net-core #iis #windows-authentication #applicationpoolidentity
Вопрос:
Машина: Windows server 2016 (IIS 10)
Рамки: ASP.net ядро 2.2, Веб-Api
У меня есть простое ASP.NET основная серверная сторона Web-api с клиентской стороной angular 8. В настоящее время приложение размещено в моем локальном IIS. Веб-api содержит конечные точки без каких-либо атрибутов авторизации. Все работает нормально, пока конфигурация IIS настроена на анонимную аутентификацию.
Когда я устанавливаю проверку подлинности IIS на проверку подлинности Windows (я намерен использовать ее в будущем в других конечных точках, для которых требуется проверка подлинности KerberosAD), я получаю ошибку 401 «Несанкционированный доступ» при попытке достичь тех же конечных точек.
Я не нашел способа избежать этого !!
Как я могу достичь конечной точки как анонимный, если установлена проверка подлинности Windows ?
В соответствии с ошибкой: «Веб — сервер не настроен для анонимного доступа, и не был получен требуемый заголовок авторизации» — Могу ли я отправить заголовок с «withCredentials» : «false» — попробовал, и это не помогло.
В разделе Проверка подлинности -> Начальные свойства проверки подлинности Windows:
Расширенная защита: выключена
Включить аутентификацию в режиме ядра: верно
Это мой пример конечной точки веб-api:
[Route("dosomething")]
[HttpGet]
public IActionResult DoSomething()
{
...
}
Сторона клиента:
getData(): Observable<someModel>
{
return this.httpClient.get<someModel>(<url>)
.pipe(
tap(response =>
{
do something
}),
catchError(error =>
{
<doSomeErrorHandling>
return throwError(error);
})
);
}
The application pool is defined as:
Версия .NET CLR: «Нет управляемого кода»
Режим управляемого конвейера: Интегрированный
Идентичность : Идентификатор приложения