#c# #asp.net
#c# #asp.net
Вопрос:
Возможно ли узнать, зарегистрирован ли другой пользователь на веб-сайте с помощью ASP.NET Формирует аутентификацию?
- Пользователь A отправляет пользователю B сообщение.
- если пользователь B зарегистрирован на веб-сайте, должно появиться всплывающее окно.
- если нет, он перейдет на обычную страницу уведомлений.
Как я могу реализовать этот сценарий?
Ответ №1:
Что ж, если у вас есть список «активных сеансов» в вашей базе данных, он должен знать, действителен ли вход пользователя в данный момент, заканчивается ли он или неактивен. Если у вас есть скрипт, который опрашивает сообщения, если сообщение отправлено, и оно не может быть отправлено, то сообщение отправляется во входящие, или оно отображается на экране.
Комментарии:
1. Спасибо за ответ, на данный момент я не использую сеансы на своем веб-сайте, когда пользователь входит в систему, я должен просто поместить их идентификатор пользователя в таблицу зарегистрированных пользователей, имеет ли это смысл?
2. Ну, да и нет, если вы не используете сеансы, как вы уверены, что пользователь на странице авторизован? Что, если у них общие IP-адреса? вы наверняка что-то делаете с временными данными, кроме того, как вы проверяете, выходят ли они из системы?
3. Привет, я использую formsauthentication и cookies, чтобы убедиться, что пользователь вошел в систему, пока это, кажется, работает отлично. При выходе из системы я использую FormsAuthentication. Метод SignOut().
Ответ №2:
Обычно для некоторой переменной сеанса будет задан, например, идентификатор вошедшего в систему пользователя. Проверьте, существует ли это, и если да, то они вошли в систему.
Я сам не использовал Formsauthentication, поэтому не могу быть точным.
Ответ №3:
Я делаю это через формы login и global.asax. Если кто-то успешно вошел в систему, я добавляю его / ее имя пользователя и идентификатор сеанса в словаре в значении приложения, которое доступно глобально. Если я получаю Session_end в global.asax, я удаляю эту запись.