politica plantilla para modelo generador ejemplo aviso flash cookies urlrequest

flash - plantilla - Al enviar un formulario con URLRequest, ¿cómo incluir cookies de la sesión del navegador?



politica de cookies plantilla (3)

(Con referencia a esta respuesta :)

Cuando PUBLICO con una URLRequest, ¿incluye automáticamente las cookies de la sesión del navegador en la que se aloja Flash? Si no, ¿cómo puedo hacer que los incluya o, si es necesario, recuperarlos e incluirlos yo mismo?


No estoy seguro acerca de flash. ¿Pero no podría serializar la cookie y ponerla en la URL?

Tal vez desee cifrar los datos o transmitirlos en texto sin formato, pero podría ser similar a:

url:

www.example.com?newurl&cookiesession=true&cookieusername=bob

etc

(¿O me falta algo?)


Si los dominios de cookies (de la página que aloja el control de Flash y la URL a la que está publicando) coinciden, entonces sí, las cookies del navegador se envían con la solicitud de manera predeterminada. Como un ejemplo rápido ( versión de trabajo aquí ), he reunido una página simple de ColdFusion que aloja un archivo SWF que contiene el siguiente código:

<mx:Script> <![CDATA[ private function btn_click():void { var req:URLRequest = new URLRequest("http://test.enunciato.org/test.cfm"); req.method = URLRequestMethod.POST; var postData:URLVariables = new URLVariables(); postData.userName = "Joe"; postData.userCoolness = "very-cool"; req.data = postData; navigateToURL(req); } ]]> </mx:Script> <mx:Button click="btn_click()" label="Submit" />

... y en esa página, configuré una cookie, llamada "USERID", con un valor de "12345". Después de hacer clic en Enviar y navegar a otro CFM, los registros de mi servidor revelan la cookie pasada en la solicitud:

POST /test.cfm HTTP / 1.1 Mozilla / 5.0
ASPSESSIONIDAASRDSRT = INDFAPMDINJLOOAHDELDNKBL;
JSESSIONID = 60302395a68e3d3681c2;
USERID = 12345
test.enunciato.org 200

Si lo pruebas tú mismo, verás también los datos posteriores allí.

¿Tener sentido?


Supongo que solo desea incluir algo así como una identificación de sesión con fines de autenticación en el servidor.

Para obtener la cookie del navegador desde AS (necesita javascript habilitado, no debería ser un problema para la mayoría de los usuarios)

public var cookieStr:String; public var cookieHeader:URLRequestHeader; ExternalInterface.call(''eval'',''window.cookieStr = function () {return document.cookie};'') cookieStr = ExternalInterface.call(''cookieStr''); cookieHeader = new URLRequestHeader("Cookie",cookieStr);

Luego, al usar su objeto URLRequest:

var urlRequest:URLRequest = new URLRequest(...blah blah, url here, etc etc); urlRequest.requestHeaders.push(cookieHeader);

Tenga en cuenta que Firefox no envía las cookies de la sesión junto con una URLRequest, necesitará una solución similar a la anterior para solucionar este problema.