Ядро Asp.Net Не найдено DefaultChallengeScheme - PullRequest
1 голос
/ 10 июля 2019

В моем проекте Asp.Net Core API есть пользовательский AuthorizationHandler, который авторизует запросы на основе токенов, переданных в Headers.

Handler работает нормально, так как он вызывается во время выполнения, но я получаю следующую ошибку

InvalidOperationException: не указана схема аутентификации, и не было DefaultChallengeScheme найден.

Я зарегистрировал свои настройки в Startup.cs следующим образом:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(IISDefaults.AuthenticationScheme);
    services.AddSingleton<IAuthorizationHandler, TokenAuthorizationHandler>();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseAuthentication();
    app.UseMvc();
}

Есть предложения?

1 Ответ

0 голосов
/ 11 июля 2019

Свойства проекта по умолчанию: включить анонимную аутентификацию и отключить аутентификацию Windows.

Если вы хотите выбрать IIS-аутентификацию по умолчанию в качестве аутентификационной схемы, вам нужно изменить свойства проекта, чтобы включить аутентификацию Windows и отключить анонимную аутентификацию:

  • Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Свойства .

  • Выберите вкладку Отладка .

  • Снимите флажок для Включить анонимную аутентификацию .

  • Установите флажок для Включить проверку подлинности Windows .

  • Сохраните и закройте страницу свойств.

Ссылка: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-2.2&tabs=visual-studio#iisiis-express

Или вы можете добавить другие схемы аутентификации (аутентификация на основе файлов cookie, аутентификация на носителе JWT и т. Д.), См. Авторизация по определенной схеме в ASP.NET Core для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...