Наш процесс входа в систему единого входа использует проверку подлинности с помощью форм для пользовательского хранилища в SQL Server.
Одно из наших новых требований безопасности - разрешить учетной записи иметь только один активный сеанс за раз. Таким образом, каждый раз, когда пользователь входит в систему, мы проверяем, активны ли уже учетные данные для входа, и, желательно, чтобы новый пользователь не входил в систему снова, пока не завершится другой сеанс. В качестве альтернативы мы можем принудительно завершить другой сеанс, если это будет проще реализовать.
Есть ли простой способ сделать это с помощью проверки подлинности с помощью форм? Мы рассмотрели индивидуальный подход, при котором мы отслеживаем каждый сеанс в базе данных, но это потребует много работы, и нам, вероятно, придется изменить все наши приложения для обнаружения session_end, чего я надеюсь избежать. Я полагаю, что в Forms Auth должно быть что-то, что справляется с этим.
Я видел метод MembershipUser.IsOnline (), который кажется идеальным, но мы не используем поставщика членства.
ОБНОВЛЕНИЕ: для ясности, мне не нужно проверять, вошел ли текущий пользователь в систему, мне нужно знать, вошел ли уже кто-то еще с той же учетной записью.