flex session cookies vbulletin

Accediendo a las cookies del navegador desde Flex



session vbulletin (3)

Estoy creando un widget Flex para un sitio vBulletin privado, y el widget Flex necesita acceder a un archivo XML en el servidor vBulletin para mostrar datos.

Por razones de seguridad, la URL XML deberá tener el valor en la cookie bbsessionhash pasada en la solicitud de URL de Flex. El widget Flex se integrará en el área privada en la que el usuario ha iniciado sesión, por lo que la solicitud de Flex procederá del mismo sitio web desde el que se encuentra la cookie.

¿Hay alguna forma de acceder a las cookies directamente dentro de Flex? Preferiría no utilizar ExternalInterface para tomar los datos de las cookies de JavaScript, ya que podría ser un poco complicado (las plantillas son desarrolladas por un equipo de desarrollo completamente diferente).



Según las cookies flash o flexibles, el desarrollador puede usar el objeto compartido, que es un tipo de cookie utilizado para la aplicación flexible.

El fragmento de código de muestra es como sigue

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."); }


Acceder a Flex SharedObject NO es lo mismo que acceder a las cookies del navegador, para acceder a las cookies del navegador, puede utilizar la clase ExternalInterface, verifique la siguiente referencia para ver ejemplos:

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

Aquí puede encontrar una referencia sobre cómo usar y controlar las cookies usando JavaScript:

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

Usaría el siguiente código Flex:

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

Y en el HTML, agregaría el siguiente 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); } }

Si necesita más ayuda, también puede consultar la documentación de Flex.