如何在ColdFusion中检查请求的URL



我已经在我的application.cfc的 onRequestStart方法中编写了代码。因此,每当请求提出在会话值创建之前,它将始终重定向到login_action.cfm

<cfif not IsDefined("session.active")>
   <cfinclude template="login_action.cfm">
</cfif>

login_action.cfm中是用于阻止其他页面访问的代码,没有适当的身份验证:

<cfif NOT (IsDefined ("Form.username") AND IsDefined ("Form.password"))>
     <cfinclude template="login.cfm">
     <cfabort>
<cfelse>

现在我创建了一个注册页面。此页面不需要身份验证。每个人都应该单击一个页面,但是现在没有登录就不可能。我可以通过以某种方式检查onRequestStart方法的targtedPage参数来更改此操作?

有人可以帮我吗?

问题:

我可以通过onrequestStart方法的targtedpage(SIC(参数对此进行检查?

答案

是。

使用您现有的代码结构并提出调用注册页面signup_page.cfm的推定。

<cffunction 
    name="OnRequestStart" 
    access="public" 
    returntype="boolean" 
    output="false" 
    hint="Fires at first part of page processing.">
    <!--- Define arguments. --->
    <cfargument 
        name="TargetPage" 
        type="string" 
        required="true" />

    <cfif FindNoCase( "signup_page.cfm", arguments.TargetPage)>
        <!--- User is at the signup page, no need to check for an active session. Do stuff if necessary here. --->
    <cfelse>
        <cfif not IsDefined("session.active")>
            <!--- User's session is inactive, redirect --->
            <cfinclude template="login_action.cfm">
            <cfreturn false />  <!--- You should add this return in your existing code. --->
        </cfif>
        <!--- User is logged in with an active session, do other stuff. --->
    </cfif>
    <!--- Return out. --->
    <cfreturn true />
</cffunction>

相关内容

  • 没有找到相关文章

最新更新