Redirect 使用ColdFusion Model Glue,如何在登录后将用户重定向回其请求的页面?
我有一个安全事件类型,它将检查用户是否已登录,如果用户未登录,则会将其重定向到登录页面:Redirect 使用ColdFusion Model Glue,如何在登录后将用户重定向回其请求的页面?,redirect,coldfusion,coldfusion-9,model-glue,Redirect,Coldfusion,Coldfusion 9,Model Glue,我有一个安全事件类型,它将检查用户是否已登录,如果用户未登录,则会将其重定向到登录页面: <event-types> <event-type name="securedPage"> <before> <broadcasts> <message name="CheckLogin"/> </broadcasts>
<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>
这段代码工作得很好,但我现在遇到的问题是,它将始终重定向到用户的主页,即使他们请求另一个页面。由于表单发布到action.login事件,并且结果
do
硬编码到page.user.home
,我如何修改代码以跟踪用户最初请求的页面并将其重定向回那里?在用于确定用户是否需要登录的逻辑中,您可以获取当前事件并将其存储在共享范围(如会话范围)中
然后,在成功登录后,只需调用event.forward()并传入该值。以下是一般思路:
谢谢,这就是我最后要做的。
<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>