Работа над приложением, использующим Identity 3 в ядре asp.net. У меня есть ситуация, когда мы предоставляем пользователю потребности системного администратора через пользовательский интерфейс для управления пользователями, ролями и претензиями.
рабочий процесс;
- Роли динамически создаются системным администратором в процессе установки приложения, где утверждения (мы называем их разрешениями в пользовательском интерфейсе) назначаются ролям.
- Новые пользователи создаются системным администратором, где пользователю назначается роль.
- Претензии регистрируются в политиках в Startup.cs.
Политики разбросаны по всему приложению в представлениях и контроллерах, чтобы ограничивать/предоставлять пользователям доступ на основе утверждений, которые они имеют через роли, которым они назначены.
Администратор может заблокировать пользователя с помощью флажка пользовательского интерфейса, где поле даты блокировки в таблице пользователей установлено далеко в будущем, и сбросить, если они разблокируются, до сегодняшней даты.
Проблема: файл cookie используется для аутентификации пользователя, а утверждения в файле cookie (я думаю...) используются для авторизации доступа пользователя к определенным ресурсам, регулируемым политиками. Сеанс cookie установлен на 30 минут по умолчанию.
Если администратор блокирует пользователя и/или если администратор меняет роль пользователя, что меняет утверждения пользователей (+/-)... изменения не вступают в силу (из UX) до тех пор, пока пользователь либо a. выйти и снова войти или b. срок действия файла cookie в их браузере истекает.
Identity, похоже, не имеет метода _userManager.ForceUserToSignInAgainAsync(), чтобы обновлять переменные cookie. Кто-нибудь нашел решение этой потребности? Похоже на обычный сценарий, который должен быть частью Identity 3.