sinonimo redirija redirigir redirect coldfusion coldfusion-9 model-glue

redirect - redirija - redirigir sinonimo



Al utilizar ColdFusion Model-Glue, ¿cómo redirijo al usuario a su página solicitada después de iniciar sesión? (2)

En la lógica que utiliza para determinar si un usuario necesita iniciar sesión, puede tomar el evento actual y almacenarlo en un alcance compartido (como el alcance de la sesión).

Luego, después de un inicio de sesión exitoso, simplemente llame a event.forward () y pase ese valor.

Tengo un tipo de evento seguro que verificará si el usuario está conectado y lo redireccionará a la página de inicio de sesión si no lo está:

<event-types> <event-type name="securedPage"> <before> <broadcasts> <message name="CheckLogin"/> </broadcasts> </before> <results> <result name="NeedLogin" do="page.login" redirect="true"/> </results> </event-type> </event-types>

La página de inicio de sesión tiene un formulario que vincula a un controlador de eventos action.login , que redirigirá a la página de inicio del usuario si el inicio de sesión fue exitoso, y vuelve a mostrar la página de inicio de sesión si no fuera así:

<event-handler name="action.login"> <broadcasts> <message name="Login"/> </broadcasts> <results> <result name="LoggedIn" do="page.user.home" redirect="true"/> <result name="NotLoggedIn" do="page.login"/> </results> </event-handler>

Este código funciona muy bien, pero el problema con el que me estoy encontrando ahora es que siempre se redirigirá a la página de inicio del usuario, incluso si solicitaron otra página. Dado que el formulario se publica en el evento action.login , y el resultado está codificado en page.user.home , ¿cómo puedo modificar mi código para hacer un seguimiento de la página que el usuario solicitó originalmente y volver a dirigirlos allí?


aquí está la idea general:

  1. en cualquier método / código que se ejecute para ''asegurar'' su página, si un usuario no ha iniciado sesión, tome la url que estaban tratando de alcanzar y vuelva a configurarla como una variable antes de reenviarla. el alcance de CGI será su amigo aquí, particularmente CGI.query_string.

  2. en su formulario de inicio de sesión / inicio de sesión, verifique esta variable ''returnEvent'' en viewstate y establézcala como un valor oculto en su formulario si existe.

  3. en algún lugar de su registro / proceso después del éxito, verifique esta variable ''returnEvent'' y si existe, reenvíe al usuario.