2010-12-11 9 views
8

Tengo una aplicación de Flex, que estoy portar al aire, las dos aplicaciones son idénticos excepto por la etiqueta raíz siendo WindowedApplication lugar de aplicación.Galletas de trabajo en Flex, pero no en Aire

El problema es que los inicios de sesión basada en cookies/sesión están trabajando para la aplicación de la flexión en el navegador, pero no para la aplicación de aire. Al leer los documentos, se dice que las cookies están disponibles para el aire y que URLRequest manageCookies es verdadero de manera predeterminada.

Así que, ¿alguien tiene alguna idea de lo que esto no está funcionando en el aire?

** * ** * ** * ** * *ACTUALIZACIÓN* ** * ** * ** * ** * ****

He investigado más y resulta que las cookies están funcionando en Air y se utilizan para todas las solicitudes posteriores después del inicio de sesión, pero la cookie no supera el cierre de la aplicación y el usuario debe iniciar sesión nuevamente cuando reinician .

Pregunta 2, ¿se espera este comportamiento? Si es así, buscaré almacenar la información de la cookie en EncrptedLocalStore o algo así.

** * ** * ** * ** * *ACTUALIZACIÓN* ** * ** * ** * ** * ****

Saludos,

Chris

+2

cookies son un invento navegador. En AIR, no hay un navegador y, por lo tanto, no asumiría cookies. Es posible que pueda extraer los valores de las cookies de su solicitud de devolución, almacenarlos localmente de alguna manera y agregarlos como encabezados en cada llamada remota cada vez. O busque alternativas a las sesiones del lado del servidor. – JeffryHouser

+0

Air está construido sobre Webkit. Eso tampoco es lo que se sugiere aquí - http://blogs.adobe.com/simplicity/2010/08/single-sign-on-and-http-cookies-in-air-applications.html – ChrisInCambo

+0

O aquí - http: // help.adobe.com/en_US/air/reference/html/flash/net/URLRequestDefaults.html#manageCookies – ChrisInCambo

Respuesta

0

Se puede utilizar para almacenar HTML control ot recuperar las cookies. Estas cookies son del navegador predeterminado del sistema.

+0

No estoy cargando HTML desde Rails, estoy cargando un servicio RubyAMF que se llama a través de HTTP. Hay una propiedad exclusiva de Air llamada manageCookies con los valores predeterminados en true, lo que me lleva a creer que hay soporte de cookies en Air - http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest .html? filter_flex = 4.1 & filter_flashplayer = 10.1 & filter_air = 2 # manageCookies – ChrisInCambo

+0

Exactamente porque necesita trabajar con cookies, _debe_ usar control adicional que implemente el mecanismo de cookies. Puedes hacerlo invisible, usarlo en paralelo, atrapar el evento completo por ejemplo y luego hacer cosas básicas. – Lex

3

"AIRE recoge la configuración de cookies desde el sistema operativo , y no el navegador. simplemente sucede a pesar de que algunos navegadores también utilizan el sistema operativo settings/cookies."

http://help.adobe.com/en_US/air/reference/html/flash/net/URLRequest.html#manageCookies

http://prsync.com/adobe/more-on-sharing-http-cookies-with-air-applications-107386/

que he investigado más y resulta las galletas están trabajando en el aire y son utilizarse para todas las solicitudes posteriores tras el inicio de sesión, pero la cookie no sobrevive un cierre de la aplicación y se requiere que el usuario inicie sesión de nuevo cuando se reinician.

Pregunta 2, ¿se espera que esto comportamiento? Si es así, investigaré almacenando la información de la cookie en EncrptedLocalStore o algo así.

Sí, adelante con EncrptedLocalStore.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/data/EncryptedLocalStore.html

Actualizar

http://blogs.adobe.com/simplicity/2010/08/single-sign-on-and-http-cookies-in-air-applications.html