Мое приложение имеет несколько обработчиков аутентификации, настроенных при запуске:
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
...
})
.AddApiKeyAuth();
Аутентификация openid connect работает нормально, однако я хочу, чтобы один конкретный контроллер использовал определенную мной 'ApiKeyAuth'.Итак, в соответствии с документами:
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme?view=aspnetcore-2.1&tabs=aspnetcore2x
Я указал схему аутентификации, которую я хочу использовать для этого контроллера:
[Route("api/[controller]")]
[ApiController]
[Authorize(AuthenticationSchemes = ApiKeyAuthHandler.SchemeName)]
public class MyApiController : ControllerBase
Однако приложение просто кажетсяигнорируйте это, и похоже, что включается обработчик соединения openId.
Чего мне не хватает, почему он игнорирует мой атрибут?