Swagger ломается с реализацией IAuthorizationPolicyProvider - PullRequest
0 голосов
/ 29 апреля 2020

Я заметил, что когда я пытался создать пользовательский поставщик политики для API ( документация здесь ), SwaggerUI ломается, но это нормально, если я добавляю политику непосредственно в конфигурацию служб.

API все еще функционирует, потому что я могу успешно звонить на мои конечные точки API, но кто-нибудь может объяснить, почему инструмент Swagger больше не отображался? Я получаю сообщение об ошибке 401, когда браузер пытается открыть страницу localhost: [port] /index.html.

1 Ответ

0 голосов
/ 30 апреля 2020

Поскольку в моей настройке было несколько политик, при попытке запуска расширения пользовательского интерфейса Swagger в моей реализации IAuthorizationPolicyProvider использовался метод GetFallbackPolicyAsyn c (), который в соответствии с документацией вызывается при наличии комбинированных политик. Хотя я явно указываю уровни аутентификации для каждого из методов контроллера в отдельности, похоже, что пользовательский интерфейс Swagger использует резервную политику, чтобы определить, есть ли у меня доступ, и поскольку мои политики ограничены аутентификацией, которая не передается при запуске, Я должен был установить резервную политику на ноль:

public Task<AuthorizationPolicy> GetFallbackPolicyAsync()
{
    return Task.FromResult<AuthorizationPolicy>(null);
}
...