Как мне создать cookie через flex / coldfusion, который будет читаться другим шаблоном? - PullRequest
0 голосов
/ 04 февраля 2010

Внутри гибкого приложения у меня есть логин пользователя. Имя входа вызывает функцию ColdFusion как удаленный объект, который аутентифицирует пользователя и, если применимо, возвращает его идентификатор и уровень доступа. Это отлично работает, но теперь я хочу создать cookie для другого шаблона ColdFusion (вызываемого из fileReference.upload ()), чтобы иметь к нему доступ позже.

Я пробовал несколько различных способов создания cookie - cfcookie, создание cookie с JavaScript внутри функции ColdFusion и создание cookie с JavaScript с внешним интерфейсом, как только функция coldfusion возвращается в обработчик результатов flex. Все они были опробованы с множеством опций, касающихся срока действия, пути и тегов домена.

Кажется, что все это работает для создания файлов cookie. Файлы cookie отображаются в списках для моего домена в Chrome, а также в надстройке Firefox «Просмотр файлов cookie 1.9.2», которую я установил только для этой цели. Тем не менее, ни один из этих файлов cookie, по-видимому, не читается моим upload.cfm, когда он вызывается позже.

Upload.cfm, вызванный запросом на загрузку файла, отправляет идентификатор пользователя вместе с файлом. Отсюда следует простое сравнение идентификатора, отправленного с файлом, и идентификатора из cookie. До сих пор шаблон upload.cfm не смог найти cookie (ни с одним из методов создания), глядя на очевидный # cookie.name # или даже #name #.

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

Спасибо за чтение,

-cs

1 Ответ

2 голосов
/ 04 февраля 2010

Вы провели большую часть / все тестирование в браузере, отличном от Internet Explorer?

К сожалению, во Flash Player есть ошибка [требуется логин], которую можно обобщить как:

  • (В браузерах, отличных от Internet Explorer) Флэш-плеер использует сетевой стек, отличный от браузера, и поэтому ...
  • Запросы, сделанные флеш-плеером, имеют другой сеанс на стороне сервера, чем, например, запрос на страницу, в которую встроен флеш-плеер.

Это приводит к ситуации, когда переменные сеанса, заданные страницей, (по умолчанию легко) не доступны для удаленных запросов, сделанных флэш-плеером на странице.

CFID и CFTOKEN задаются как файлы cookie, а также хранятся в переменной session.urlToken. (JSessionId также включен, если вы используете управление сессиями Java).

Я не уверен, но я думаю, что это может быть причиной вашей проблемы.

Я полагаю, что если вы передадите значения CFID и CFTOKEN (и JSessionId) в свое приложение Flex как FlashVars, а затем включите их в удаленные запросы к серверу, то установленные вами файлы cookie будут доступны для более поздних удаленных запросы по флэш-памяти (т.е. ваша загрузка).

...