Войдите в систему, кроме CookieAuthenticationDefaults.AuthenticationScheme - PullRequest
0 голосов
/ 30 апреля 2020

Я успешно использовал следующее в своем приложении Razor:

authenticationBuilder.AddOpenIdConnect(options =>
{
     options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;

     // Other Options....

Он создает зашифрованный повар ie в браузере и позволяет мне сохранить токен доступа и JWT для данного пользователя на их стороне. (браузер).

Но сейчас я создаю службу WebAPI (использую. NET Core 3.1). Этот сервис будет вызывать другие веб-сервисы. Он будет использовать поток учетных данных клиента OpenID Connect, чтобы получить токен доступа для отправки этим «другим веб-службам».

Этот вопрос о том, как сохранить токен доступа учетных данных клиента (поэтому мне не нужно go спрашивайте об этом при каждом звонке.)

Я не чувствую, что повар ie - верный способ сохранить эти данные. Я даже не уверен, что служба WebAPI будет работать с файлами cookie (я всегда слышал о них как о браузере). Я мог бы, конечно, просто использовать кэш в памяти для хранения этого. Я также мог бы просто позвонить своему ВПЛ вручную через HttpClient. Но я бы предпочел использовать. Net Core Framework, если он настроен для этой ситуации.

Есть ли другие варианты для OpenIdConnectOptions.SignInScheme в. Net Core 3.1 Framework? Если да, то, что они и как они используются?

1 Ответ

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

Чтобы войти в систему, обработчик аутентификации для схемы должен реализовать IAuthenticationSignInHandler.

В соответствии с MSDN документами и github search , CookieAuthenticationHandler - единственный обработчик, который конкретно реализует интерфейс. Таким образом, мое предположение состоит в том, что нет никаких других встроенных обработчиков входа из коробки.

PolicySchemeHandler реализует интерфейс, но пересылает аутентификацию на другая схема.

Кроме того, обратите внимание на ASP. NET Core Data Protection API , если вам нужно защитить токены доступа.

...