Чтение и обработка данных из флеш-куки

Я хочу создать флэш-SWF-файл, который будет хранить токен в Local Shared Object. Что мне нужно сделать, чтобы прочитать этот токен и посмотреть его в базе данных на серверной части? Это вообще возможно?

Вот возможный сценарий:

  1. Пользователь заходит на мою веб-страницу
  2. Токен генерируется на сервере и сохраняется в базе данных
  3. Затем токен сохраняется в LSO
  4. Пользователь покидает сайт (возможно, выключает свой компьютер) и возвращается позже
  5. Токен считывается, размещается в базе данных, и пользователь распознается (допустим, что токен является внешним ключом, который ссылается на другие пользовательские данные, хранящиеся в БД).

Я исследовал это довольно давно, и все, что я обнаружил, это то, что флэш-память может использовать LSO для хранения прочитанных данных для флэш-фильмов... Означает ли это, что данные не могут быть доступны серверу?

Спасибо!

4 ответа

Да, это возможно, но вам нужно рассматривать это как две разные операции. С одной стороны, вы сохраняете и читаете SharedObject, с другой стороны, вы общаетесь с сервером и запрашиваете базу данных.

Вы можете использовать ZendAmf сервер для связи с PHP. Вы сможете отправить данные SharedObject в PHP, чтобы выполнить запрос к базе данных. Когда база данных возвращает результат, ZendAmf отправляет ответ Flash.

Посмотрите это видео-представление Zend Amf от Lee Brimelow

Локальные общие объекты больше похожи на локальное хранилище, чем на куки. Термин "Flash cookie" является своего рода подходящим с точки зрения конечного пользователя, но технически LSO не похож на cookie, он не отправляется автоматически в HTTP-запросах. Вместо этого код на клиенте должен прочитать значение из LSO и явно отправить его на сервер.

Я частично согласен с PatrickS; функциональность, которую вы хотите, должна рассматриваться как набор отдельных процессов. Но я думаю, что размер этого набора 3, а не 2:

  1. Процесс, способный вставлять и извлекать данные в базу данных
  2. Процесс, способный передавать данные между клиентом и сервером
  3. Процесс, способный вставлять и извлекать данные в LSO

Поэтому нет, данные LSO не могут быть созданы или доступны для сервера. Однако он может быть создан или доступен (и отправлен обратно) от имени сервера. И это лучше всего сделать с использованием ExternalInterface, вот так:

  1. Инкапсулируйте в метод код ActionScript, который обрабатывает данные LSO.
  2. Зарегистрируйте метод во внешнем интерфейсе предполагаемого приложения Flash, которое определено в использовании. ExternalInterface.addCallback(),
  3. Скомпилируйте приложение Flash и создайте в своем HTML элемент, который ссылается на результирующий файл.swf.
  4. Создать DOMElement представление элемента HTML и вызов метода в #1, который теперь должен быть определен как член DOMElement,

Проверьте BakedGoods, если вы не хотите, чтобы пройти через все это; это библиотека Javascript, которая устанавливает единый интерфейс, который можно использовать для выполнения общих операций хранения во всех собственных и некоторых не собственных средствах хранения, включая Flash Local Local Shared Objects.

С его помощью создание LSO может быть выполнено с помощью простого кода:

bakedGoods.set({
    data: [{key: "key", value: "value"}],
    storageTypes: ["flash"],
    complete: function(byStorageTypeRemovedItemKeysObj, byStorageTypeErrorObj){/*code*/}
});

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

Поскольку вы пометили вопрос с помощью asp.net, я считаю, что сохранение / получение / проверка файла cookie не будет проблемой для вас.

В противном случае, если вам нужна помощь в работе с файлами cookie в asp.net..... в сети полно тех, как это сделать. Один, чтобы сохранить ваши штрихи: http://msdn.microsoft.com/en-us/library/ms178194.aspx

Таким образом, если данные, такие как пароли, данные пользователя и т. Д., Не являются тем, к чему относится ваш "токен", то все, что вам нужно, - это передать токен в виде строки запроса. Это можно сделать с помощью flashvars.

Посетите ссылку для хорошей маленькой беседы.

http://www.permadi.com/tutorial/flashVars/index.html


редактировать

Я просто указал на то, что жопа делает это элегантно.

Используйте токен, прочитайте из LSO, чтобы запомнить пользователя.

var token:SharedObject;
token = SharedObject.getLocal("UserToken");

if (token.data.value==undefined)
    token.data.value = ?; // Pass the User token here while writing
else            
    ? = token.data.value; // Use the values while reading

Если вы хотите работать с примером локального общего объекта, выполните следующие действия: http://www.emanueleferonato.com/2008/12/28/understanding-as3-shared-objects/

Но, пожалуйста, помните, что хранить вещи без знания пользователей не рекомендуется. Поэтому постарайтесь сообщить пользователю, что он запомнится на сайте. Что-то вроде помните меня флажок?

Другие вопросы по тегам