Я отправляю этот ответ, чтобы узнать, есть ли лучший ответ. Единственное, что мне не нравится в этом решении, так это то, что пользователь остается в приглашении «Из какой учетной записи вы хотите выйти» после того, как истекло время ожидания.
Итак, вот что я сделал. Я настроил соединение OpenID в классе Startup.cs. Если я добавлю «prompt = login» в класс Startup.cs> ConfigurServices> OpenIDConnecOptions (см. Изображение ниже), это заставит пользователя ввести свои учетные данные после того, как будет выполнена ссылка для выхода. Это вариант отмены «единого входа»
Как это работает. Когда вы программно выполняете URL-адрес выхода (siteUrl + «AzureAD / Account / SignOut»), вы попадете на страницу с запросом: Из какой учетной записи вы хотите выйти ". Даже если пользователь не выйдет из учетной записи, он выйдет из вашего приложения, и ему потребуется повторно ввести учетные данные. Это единственный способ сообщить серверу идентификации, что нам нужно повторно аутентифицировать этого пользователя.
Я думаю, важно отметить, что, как только вы измените этот код в startup.cs, вы необходимо выйти из системы один раз, чтобы увидеть все эффекты изменения в других браузерах и на других вкладках. Я предполагаю, что сервер идентификации хранит эту информацию как параметр (prompt = login). Угадаю!
Я использовал JavaScript, чтобы создать тайм-аут простоя и автоматизировать создание и событие щелчка для ссылки выхода. Я получил JavaScript идею таймаута простоя из этого видео. «https://youtu.be/cOV0uV_E6bU». Работает хорошо.
Startup.cs класс