Это лучшее решение, которое я нашел на данный момент:
if (AuthType.StartsWith("Basic"))
{
var handlers = Context.RequestServices.GetRequiredService<IAuthenticationHandlerProvider>();
var handler = handlers.GetHandlerAsync(Context, BasicAuthenticationDefaults.AuthenticationScheme).Result;
var res = handler.AuthenticateAsync().Result;
Debug.WriteLine(res.Succeeded);
if (res.Succeeded)
return Task.FromResult(res);
}
else if(AuthType.StartsWith("Bearer"))
{
var handlers = Context.RequestServices.GetRequiredService<IAuthenticationHandlerProvider>();
var handler = handlers.GetHandlerAsync(Context, JwtBearerDefaults.AuthenticationScheme).Result;
var res = handler.AuthenticateAsync().Result;
Debug.WriteLine(res.Succeeded);
if (res.Succeeded)
return Task.FromResult(res);
}
Оно не работает с аутентификацией Windows.Я получаю только сообщение об ошибке:
Не настроен обработчик аутентификации для проверки подлинности для схемы: Windows
Но я добавил IISDefaults
services.AddAuthentication(IISDefaults.AuthenticationScheme)
Пожалуйста, не стесняйтесь комментировать или редактировать.