Из-за отсутствия состояния сети вы не можете «выйти» из сеанса, пока они не сделают следующий запрос (например, сеанс может быть сохранен в файле cookie, который не может быть записан на клиенте внеконтекст взаимодействия запрос-ответ).
Все еще существует решение, которое предполагает, что вы используете состояние сеанса, и предпочтительно у вас есть общий базовый контроллер для всех ваших контроллеров, требующих «Аутентификация».
После успешного входа в систему сгенерируйте токен (возможно, guid) и сохраните его вместе с сеансом.Также запишите это в хранилище всего приложения (например, базу данных или контекст приложения) с ключом идентификатора пользователя.
В базовом контроллере (или в противном случае вам нужно создать фильтр действий) проверьте токен в сеансепротив токена, зарегистрированного для идентификатора пользователя в хранилище приложения.Если они не совпадают, выйдите из системы, используя стандартный вызов SignOut()
.