Подтвердить что ты не робот

Доступ к куки файлы браузера из Flex

Я создаю виджет Flex для частного сайта vBulletin, а виджет Flex должен получить доступ к XML файлу на сервере vBulletin, чтобы отображать данные.

В целях безопасности URL-адрес XML должен иметь значение в файле cookie bbsessionhash, передаваемом в запросе URL из Flex. Виджет Flex будет встроен в частную область, в которую пользователь вошел в систему, поэтому запрос Flex будет поступать с того же веб-сайта, из которого сделан cookie.

Есть ли способ получить доступ к файлам cookie непосредственно внутри Flex? Я бы предпочел не использовать ExternalInterface для захвата данных cookie с JavaScript, так как это может стать немного грязным (шаблоны разрабатываются совершенно другой командой разработчиков).

4b9b3361

Ответ 1

Я никогда не пробовал этого, но эта библиотека могла бы просто сделать трюк.

Ответ 2

В соответствии с флеш файлами или флеш-куки, разработчик может использовать общий объект, который является одним из видов файлов cookie, используемых для приложения flex.

Пример фрагмента кода выглядит следующим образом

import flash.net.SharedObject;

// get/create the shared object with a unique name.
// If the shared object exists this grab it, if not
// then it will create a new one
var so: SharedObject = SharedObject.getLocal("UniqueName");

// the shared object has a propery named data, it's
// an object on which you can create, read, or modify
// properties (you can't set the data property itself!)
// you can check to see if it already has something set
// using hasOwnProperty, so we'll check if it has a var
// use it if it does, or set it to a default if it doesn't
if (so.data.hasOwnProperty("theProp"))
{
    trace("already has data! It reads: " + so.data.theProp);
}
else
{
    so.data.theProp = "default value";
    so.flush(); // flush saves the data
    trace("It didn't have a value, so we set it.");
}

Ответ 3

Доступ к Flex SharedObject не совпадает с доступом к куки файлам браузера, для доступа к куки файлам браузера вы можете использовать класс ExternalInterface, пожалуйста, проверьте следующую ссылку, чтобы увидеть образцы:

http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_4.html

Ссылка на использование и управление файлами cookie с помощью JavaScript можно найти здесь:

http://www.quirksmode.org/js/cookies.html

Я бы использовал следующий код Flex:

var myCookie:String = ExternalInterface.call("getCookie('cookieName')");

И в HTML я бы добавил следующий Javascript:

function getCookie(c_name) {
  var i,x,y,ARRcookies=document.cookie.split(";");
  for (i=0;i<ARRcookies.length;i++) {
    x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
    y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name) return unescape(y);
  }
}

Если вам нужна дополнительная помощь, вы также можете проверить документацию Flex.