Кэширование системы единого входа пользователей с использованием распределенного кэшаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Кэширование системы единого входа пользователей с использованием распределенного кэша

Сообщение Anonymous »

В настоящее время я реализую серверное приложение blazor с включенным единым входом Azure B2C. Функциональность входа в систему работает отлично, за исключением того, что состояние пользователя теряется при перезапуске приложения. Я ищу способ сохранить это состояние при перезапуске приложения. Постоянно просить пользователя повторно войти в систему — не лучший вариант.
Документация blazor по управлению состоянием не особенно полезна в этом отношении, поскольку в ней содержатся лишь расплывчатые ссылки на серверное хранилище без каких-либо содержательные ссылки на примеры.
Основываясь на своих исследованиях, я пришел к выводу, что мне нужно будет фиксировать состояние пользователя где-то вне моего приложения. Все проведенные мною исследования указывали на использование распределенного кэша токенов.
  • Ссылка 1

    Ссылка 2
  • Ссылка 3
Что я уже сделал
  • Добавлена ​​опция распределенного кэша токенов после определения моих данных Azure B2C при регистрации службы.

Код: Выделить всё

.AddMicrosoftIdentityWebApp(options => configuration.Bind("AzureAdB2C", options))
.EnableTokenAcquisitionToCallDownstreamApi(
new List() {  })
.AddDistributedTokenCaches()
Я использую опцию кэширования сервера sql (просто для простоты использования и локальных тестов). Я
  • Загрузил сервер MySQL
  • Установлен Microsoft.Extensions.Caching.SqlServer согласно документации
  • Создана соответствующая структура таблицы dotnet sql-cache create "< ConnectionString>" сеанс dbo согласно документы. Я подтвердил, что структуры таблиц созданы в соответствии с документацией.
  • Использовал метод .AddSession() для регистрации. соответствующие службы
  • Определил кэш моего сервера sql следующим образом

    Код: Выделить всё

    .AddDistributedSqlServerCache(options =>
    {
    options.ConnectionString = ""
    options.SchemaName = "dbo";
    options.TableName = "Session";
    })
    
    это идеально соответствует тому, что я вижу в схеме БД и таблице.
  • Определено app.UseSession (); непосредственно после app.UseRouting() в моем Program.cs
Что я вижу
При входе пользователя в таблицу ничего не записывается. - Я не вижу в blazor логов, указывающих на то, что служба не зарегистрирована или соединение с базой данных не может быть установлено.
Вывод
Я упускаю что-то очевидное? Есть ли какой-нибудь способ добиться сохранения состояния посредством перезапуска приложения?
Я также ознакомился с примерами удостоверений Microsoft и не видел примера, использующего этот подход.
Многие спасибо за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/790 ... uted-cache
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Кэширование системы единого входа пользователей с использованием распределенного кэша
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Режим распределенного кэша Infinispan с K8
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Режим распределенного кэша Infinispan с K8
    Anonymous » » в форуме JAVA
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • В утверждениях пользователей нет NameId для выполнения единого выхода из системы.
    Гость » » в форуме C#
    0 Ответы
    50 Просмотры
    Последнее сообщение Гость
  • В утверждениях пользователей нет NameId для выполнения единого выхода из системы.
    Гость » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»