Найти - Пользователи
Полная версия: Работа с сессиями в mod_python при использовании flex
Начало » Web » Работа с сессиями в mod_python при использовании flex
1
axe
У меня есть web-сервис под mod_python, к которому я обращаюсь либо из html-страницы, либо из flex-приложения.
Мне захотелость использовать сессии в web-сервисе.

Чтобы получить содержимое сессии я использую
from mod_python import Session
sess = Session.Session(req)
Eсли обращаться к web-сервису из html страницы, то в cookie появляется переменная, содержащая идентификатор сессии:
pysid=cd68ca9a483661ace7bce6abc53d16c1
Логично предположить, что при повторном обращении с той же html-страницы к web-сервису, в mod_python произойдёт поиск данных сессии по её идентификатору, взятому из cookie. Html страница работает с web-сервисом нормально, сессия определяется правильно.

Далее я пытаюсь разобраться с flex. Flex (и flash в-целом) не умеет работать с cookie. Только если с помощью хаков, а точнее через вызов javascript. И что делать? При запросе к web-сервису в cookie ничего не попадает. Соответственно не попадает туда и pysid, по которому должны восстанавливаться данные сессии.

Подумалось: можно pysid вытащить на уровне python-а при первом запросе, вернуть явно (т.е. текстом, а не внутри cookie). Далее во flex-е использовать javascript, чтобы записать идентификатор сессии в cookie. После чего остаётся надеяться, что cookie будут отправляться автоматически при любом запросе из flex-а. Есть другие варианты?

Но тут происходит странное, т.е. то, чего я не ожидал. При первом обращении к web-сервису я пытаюсь вытащить pysid из cookie:
str(get_cookie(req, "pysid"))
и получаю None. Т.е. после того, как сессия в mod_python только что создалась, я не могу вытащить информацию об идентификаторе сессии из cookie?
axe
одно нашёл. получить идентификатор сессии можно через sess.id()
axe
Похоже, что flash просто игнорирует cookie. Т.е. если cookie будут установлены сервером для страницы, на которой работает flash, то эти cookie в дальнейшем будут автоматически приклеиваться ко всем запросам, инициированным flash-ем.
pioner
Во флэшэ (версия =>8?) есть возможность читать заговки ответа сервера и устанавливать заголовки запроса. Можно попробовать этот путь для модификации заголовков, если именно это требуется.
Да, с запросом из флэша серверу передаются все заголовки (и куки).
На всякий пожарный - у флэша есть еще свое хранилище данных типа куков. Но автоматом туда ничего не пишется.
ИМХО - если будет не апач, или апач без мод_питон - думается, что куки лучше ловить из CGI заголовков.

P.S. почему выбран flex?
axe
вообще альтернатив есть 4:
flex, javascript, silverlight, javafx

flex умеет что-то из того, что не умеет js
flash установлен на большем числе машин, чем те, что поддерживают silverlight и javafx
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB