Rails скрытые полевые сессии возможны? - PullRequest
2 голосов
/ 17 мая 2011

Можно ли пропустить сеанс через скрытое поле формы? (то есть POST)

если да, то возможно ли между стандартным методом и полевыми сеансами на основе каждого контроллера без потери информации?

1 Ответ

1 голос
/ 17 мая 2011

Если файлы cookie отключены, CGI: Sessions автоматически переключится на использование скрытых полей, однако я не уверен, как именно это поведение поддерживается в Rails.Кроме того, изменение этого поведения, требующее использования скрытых полей, может потребовать изменения CGI: Session.

Если у клиента отключены файлы cookie, идентификатор сеанса должен быть включен в качестве параметра всех запросов, отправленныхклиент на сервер.Класс CGI :: Session вместе с классом CGI будет прозрачно добавлять идентификатор сеанса в качестве скрытого поля ввода для всех форм, созданных с использованием метода генерации HTML CGI # form ().Не предоставляется встроенная поддержка для других механизмов, таких как перезапись URL.Вызывающий отвечает за извлечение идентификатора сеанса из атрибута session_id и ручное кодирование его в URL-адресах и добавление его в качестве скрытого ввода в формы HTML, созданные другими механизмами.Кроме того, срок действия сессии не обрабатывается автоматически.

Следовательно, этот метод должен быть возможен, но, насколько я знаю, он не поддерживается как простой параметр в Rails.

Для ясности, даже хранилище сеансов ActiveRecord использует файлы cookie, поэтому не приравнивайте хранилища сеансов к способу обработки данных сеанса клиентом.

Наконец, когда-то были плагины для поддержки этого поведения, ноэти плагины старые, кажется, не поддерживают Rails 3. См. раздел «Сеанс без cookie» Сеансы и файлы cookie в Ruby on Rails

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...