Чтение и обработка данных из флеш-куки - PullRequest
0 голосов
/ 12 декабря 2010

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

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

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

    Спасибо!

Ответы [ 4 ]

1 голос
/ 12 декабря 2010

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

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

Проверьте это Введение в видео Zend Amf от Lee Brimelow

0 голосов
/ 05 июля 2016

Я частично согласен с 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.

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

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

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

0 голосов
/ 12 декабря 2010

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

0 голосов
/ 12 декабря 2010

Поскольку вы пометили вопрос с помощью 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/

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

...