У меня есть приложение Angular с бэкэндом .Net core 2.2 и внешний поставщик аутентификации.Я хочу использовать атрибут Authorize при получении запросов и либо вернуть данные по методу, либо 401, если человек не авторизован.
В настоящее время он просто перенаправляет на любой установленный DefaultChallengeScheme.
In startup.cs
Я пытался удалить DefaultChallengeScheme из services.AddAuthentication()
, пробовал этот кодовый блок:
services.AddAuthorization(options =>
{
options.InvokeHandlersAfterFailure = false;
});
Попытался также попробовать app.UseStatusCodePages()
, как описано в этой теме .
Мои настройки аутентификации:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = ExternalAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = ExternalAuthenticationDefaults.AuthenticationScheme;
})
.AddExternalProvider(options =>
{
// ...
});
При удалении переопределения options.DefaultChallengeScheme
используется только маршрутизация страницы входа в систему vanilla, вместо перенаправления на внешнего поставщика.