2015-03-13 2 views
1

Я применил аутентификацию ASP.net Identity 2.1.0 в своем приложении MVC5. Я ищу способ использовать только одно соединение за один раз за комбинацию имени пользователя и пароля. Например, если кто-то с именем пользователя A и паролем B соединяется, до тех пор, пока они не отключится, любой, кто пытается подключиться как A с паролем B, будет отклонен с сообщением в соответствии с сообщением «Существует активный пользователь, входивший в систему с этой информацией!» , Я пробовал использовать CookieAuthenticationProvider.OnValidateIdentity и CookieAuthenticationProvider.OnResponseSignIn, но я не знаю, как определить сеанс активного пользователя.Идентификация ASP.NET, разрешить только один аутентифицированный пользователь на сервере

Я нашел a post с чем-то похожим, но вместо отказа от первого соединения с теми же учетными данными он аннулирует соединение при изменении пароля.

ответ

0

Я бы решил проблему, создав новый GUID каждый раз, когда пользователь входит в систему и сохраняет его в сеансе пользователя и в токене аутентификации. По каждому запросу или через определенный интервал вы можете сравнить эти два, и если они не совпадают, вы можете вывести пользователя из системы.

При таком подходе вы, когда пользователь входит в систему со второго браузера/устройства, можете запросить у них сообщение о том, что они в настоящее время зарегистрированы в другом месте, и этот сеанс будет отключен, если они будут продолжены.

Смежные вопросы