ASP Classic и JavaScript проверяют состояние сеанса - PullRequest
2 голосов
/ 25 апреля 2010

Мне нужна помощь, чтобы попытаться выяснить, как проверить сеанс пользователей и посмотреть, вошли ли они в систему или нет.

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

Ответы [ 3 ]

1 голос
/ 25 апреля 2010

Я бы порекомендовал вам немного другой подход.

Разработайте подпрограммы обработки данных на стороне сервера, чтобы они возвращали специальный статус, такой как HTTP-статус 401, если пользователь больше не вошел в систему.

Затем настройте подпрограммы AJAX на стороне клиента, способные справиться с этим, т. Е. Открыв / отобразив экран входа в систему, желательно без потери данных / контекста предпринятой операции.

1 голос
/ 25 апреля 2010

Создайте произвольную связь с сервером, когда пользователь «перемещается по странице». Например, когда они нажимают на «вкладку», несмотря на то, что ей не нужно от сервера, используйте AJAX для проверки связи с сервером в любом случае.

Конечно, в действительности вы все равно захотите проверить, является ли сеанс активным после того, как все пользователи могли смотреть на кнопку «Обновить» за час до фактического нажатия на нее.

Вам нужны и другие, и вы будете раздражать пользователей, которые усердно используют ваше приложение, а затем обнаружите, что они все равно истекли во времени, что будет противоречить их опыту на других сайтах.

В ASP вы должны хранить что-то в объекте Session, чтобы указать, что пользователь вошел в систему. Вот пример страницы «Я вошел в систему»: -

<%
Response.ContentType = "application/json"
If Session("LoggedOn") Then
   Response.Write "{loggedOn: true}"
Else
   Response.Write "{loggedOn: false}"
End If
%>

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

0 голосов
/ 25 апреля 2010
<TITLE>YourStaticPage.aspx</TITLE>
<%
  Session("username")="StealthRT"
  Session("email")="StealthRT@stackoverflowusers.com"
  Session("userid")=1
  Session("LastPageLoad")=System.DateTime.Now
%>

Когда вы обрабатываете событие button_click для своей страницы обновления профиля, вы должны быть в состоянии проверить, сохраняются ли эти переменные в Session.Contents («username») или Session.Contents («LastPageLoad») и т. Д.

...