MicrosoftIdentityWebApi не работает для веб-приложения при добавлении в автозагрузку

Я добавляю этот вопрос, потому что какое-то время я пытался его найти и хотел добавить сюда ссылку для всех, кто выдергивает волосы из-за той же проблемы.

При подключении Azure B2C я изо всех сил пытался заставить серверную часть иметь возможность читать утверждения в токене, исходящем из Azure. Я проверил, что токен действителен и должен иметь претензии с помощью jwt.io и примеров приложений, и я настроил свое приложение на чтение токена, но каждый раз, когда мое приложение пыталось прочитать утверждения в AuthorizationHandlerContext.User.Identity.Claims, они всегда были пустой.

При дальнейшем исследовании выяснилось, что в Startup.cs настроенная мной аутентификация никогда не выполнялась.

Была поражена следующая строка:

      Services
   .AddAuthentication(*some schema*)
   .AddMicrosoftIdentityWebApi(options =>
   {
      //set some options
   }, options =>
   {
      //set some options
   })

Но код, который на самом деле устанавливал параметры, никогда не работал.

Если у вас возникла аналогичная проблема, см. Мой ответ ниже.

1 ответ

Проблема заключалась в том, что в моем базовом классе запуска была эта строка из предыдущей реализации аутентификации:

      services.AddIdentity<SomeUserClass, IdentityRole>();

После того, как это было удалено, я смог получать заявки в том формате, в котором их отправляла Azure B2C, и интегрировать их в свое приложение.

Другие вопросы по тегам