我有一个安全事件类型,它将检查用户是否已登录,如果未登录,则将他们重定向到登录页面:
<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事件处理程序的表单,如果登录成功,它将重定向到用户的主页,如果不是,则重新显示登录页面:
<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>
这段代码很好用,但我现在遇到的问题是它总是会重定向到用户的主页,即使他们请求了另一个页面。由于表单发布到action.login事件,并且结果do被硬编码为page.user.home,我如何修改我的代码以跟踪用户最初请求的页面并将它们重定向回那里?