Лучший способ иметь дело с тайм-аутом сессии в веб-приложениях?

В дополнение к другим ответам структура может (но обычно не имеет) иметь виртуальные функции, и в этом случае размер структуры также будет содержать пространство для vtbl.

11
задан anon 22 September 2008 в 14:19
поделиться

11 ответов

Информируйте сервер о том, что пользователь активно вводит информацию. Например, отправьте сообщение на сервер, если пользователь нажимает клавишу TAB или щелчки с мышью на поле. Конечное решение ваше дело.

3
ответ дан 3 December 2019 в 08:31
поделиться

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

3
ответ дан 3 December 2019 в 08:31
поделиться

Лучший совет состоял бы в том, чтобы, вероятно, попросить, чтобы пользователи закрыли окно браузера, после того как они сделаны. С использованием сеансовых куки автоматически закончится сессия, когда браузер будет закрыт, или иначе на 30-минутном тайм-ауте (может быть изменен afaik).

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

2
ответ дан 3 December 2019 в 08:31
поделиться

Если тайм-аут сессии так короток, что у пользователя нет времени для заполнения формы, я поместил бы сценарий Ajax, который делает запрос HTTP к серверу, каждые несколько минут, для поддержания сессии. Я сделал бы это только на страницах, что пользователь должен заполнить что-то или уже начал заполнять что-то.

Другое решение состояло бы в том, чтобы использовать сценарий напоминания о тайм-ауте сессии, который открывает диалоговое окно, чтобы напомнить пользователю, что сессия собирается испытать таймаут. Всплывающее окно должно отобразить "Выход из системы", и "Продолжают использовать приложение", которое выполняет ajax запрос для обновления сессии, испытывают таймаут.

2
ответ дан 3 December 2019 в 08:31
поделиться

Возможно то, что активный процесс JavaScript мог быть полезным в этом случае. Если получение сценария некоторые ключевые триггеры, это отправляет, "я все еще ввожу" сообщение к серверу для поддержания сессии.

1
ответ дан 3 December 2019 в 08:31
поделиться

Вы рассмотрели повреждение формы в меньшие блоки?

1
ответ дан 3 December 2019 в 08:31
поделиться

Контролируйте тайм-аут и отправьте всплывающее окно, чтобы уведомить пользователя, что их текущая сессия истечет и представит кнопки "OK" или "Cancel". Хорошо, чтобы сохранить движение сессии (т.е. сбросить в противоречии с еще 5 минутами или 10 минутами - независимо от того, что Вам нужно) - или Отмена, чтобы позволить сессии продолжать к обратному отсчету обнулять и таким образом, заканчиваясь.
Это - одно из большого количества способов обработать его.

1
ответ дан 3 December 2019 в 08:31
поделиться

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

Или помещенный поле пароля на форму. Зависит от того, сколько форм они должны заполнить сессию.

0
ответ дан 3 December 2019 в 08:31
поделиться

Используя JavaScript "поток" для хранения сессии открытой, мне, плохой идее.

Это против идеи тайм-аута сессии, который существует для освобождения некоторых ресурсов, если нет никакого пользователя перед приложением.

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

Можно также быть превентивными:

  1. наличие предупреждения JavaScript, отображающего ненавязчивое предупреждение (не всплывающее окно) пользователю перед тайм-аутом, истекает, которые говорят, что сессия скоро истечет (и даст ссылку для отправления ajax запроса, чтобы сбросить тайм-аут и удалить то предупреждение - который избежит пользователя к потерянному форма, которую он в настоящее время вводит),
  2. и также имейте второй JavaScript "поток", который, если сессия истекла, перенаправление к странице входа в систему с сообщением, говоря, что сессия теперь истекла.

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

1
ответ дан 3 December 2019 в 08:31
поделиться

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

0
ответ дан 3 December 2019 в 08:31
поделиться

Когда пользователь отправляет форму, и их сессия испытала таймаут, необходимо удостовериться, что Вы сохраняете значения формы где-нибудь и затем просите, чтобы пользователь вошел в систему снова. После того как они повторно аутентифицировали Вас, они могут затем повторно отправить форму (поскольку ни одни из их данных не будут потеряны).

0
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: