Как в веб-приложении под одним аккаунтом запретить одновременную работу нескольким пользователям?
Нужно сделать проверку, чтобы под одним аккаунтом в систему (веб-приложение на ASP.NET MVC) одновременно мог залогиниться только 1 пользователь.
Т.е. если под пользователем Vasya в данный момент в веб-приложении кто-то уже работает, и с другого компа пытаются под этим же аккаунтом залогиниться — не пускать.
Подскажите, как проверять? Думаю ASP.NET или PHP не важно — принципы в веб-приложениях одинаковые.
Обычно в SaaS цена формируется в зависимости от одновременно работающих в системе пользователей. Интересует алгоритм, как в таких системах корректно определяют и обрабатывают это количество пользователей.
Фишка в том, чтобы не убирать у пользователя возможность сидеть с разных компов в разное время. Но не дать возможности сидеть под одной учеткой одновременно.
Все что писали выше банально занывается «хранение сесии в базе». Обычная сессия, пока есть активная для такого логина никого по нему не пускаете, если человек отошел от компа и хочет залогиниться с другого места, у сессии есть время «неактивности», хотя я думаю Вы понимаете как сессии работают?
Именно так реализовано в torrentpier. В базе хранится сессия, если заходите с компьютера, с которого заходили в последний раз, все нормально. Если заходите с другого, поле сессии перезаписывается и на первом вы уже разлогинены.
Первого выкидывать плохо. Когда первый сочтет нужным дать кому-то попользоваться акаунтом, выйдет, или пройдут те ~15 минут жизни сессии -тогда пожалуйста. А ответ верный. Единственное что осталось уточнить — это добавлять в таблицу сессий поле id юзера или поместить id/логин в переменную сессии. Разумеется первый вариант, потому как заодно реализовывается механизм пользователи онлайн и не придется осуществлять поиск по тексту.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.