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:
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.
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.
en algún lugar de su registro / proceso después del éxito, verifique esta variable ''returnEvent'' y si existe, reenvíe al usuario.