免除Coldfusion页面的身份验证

免除Coldfusion页面的身份验证,coldfusion,session-variables,coldfusion-9,Coldfusion,Session Variables,Coldfusion 9,我需要从一个非安全的CF页面发布到一个安全的CF页面。我不想在发送值的页面上执行用户身份验证,因为这是一个相当麻烦的过程,因为这个遗留站点的设置方式,其次是因为发送值的页面作为两个不相关的订单管理系统之间的服务,而不是用户 现在,当我尝试发布到时,响应结果是重定向到主页的登录。有没有办法使发布或接收页面免于强制用户身份验证 我正在使用将值发布到post页面,该页面包含一系列的,我正在将值传递给的。一旦我将这些值传递到post页面,post页面就会触发重定向到主页,因为post页面是订单管理系统中

我需要从一个非安全的CF页面发布到一个安全的CF页面。我不想在发送值的页面上执行用户身份验证,因为这是一个相当麻烦的过程,因为这个遗留站点的设置方式,其次是因为发送值的页面作为两个不相关的订单管理系统之间的服务,而不是用户

现在,当我尝试发布到时,响应结果是重定向到主页的登录。有没有办法使发布或接收页面免于强制用户身份验证


我正在使用将值发布到post页面,该页面包含一系列的,我正在将值传递给的。一旦我将这些值传递到post页面,post页面就会触发重定向到主页,因为post页面是订单管理系统中的一个内部页面,显示为客户端登录并为其创建会话

由于您没有提供任何代码,下面是一个猜测,它可能是什么样子,以及如何为特定请求添加异常:

<cffunction name="onRequestStart" access="public" output="false" returnType="boolean">

    <cfargument name="targetPage" type="string" required="true">

    <!--- treat initialized SESSION or matching request token (rtoken) as successful authentication --->
    <cfset LOCAL.isAuthenticated = (
        isDefined("SESSION.userID")
            or
        ( structKeyExists(FORM, "rtoken") and (FORM["rtoken"] eq "some-secret-only-you-know") )
    )>

    <cfif LOCAL.isAuthenticated>

        <!--- do something... --->

    <!--- not authenticated --->
    <cfelse>

        <!--- redirect to login --->
        <cflocation url="login.cfm" statusCode="303" addToken="false">

    </cfif>

</cffunction>
现在,您可以简单地将密钥-值对rtoken=一些只有您知道的秘密添加到帖子中,以绕过基于会话的身份验证。 免责声明:仅当用户不公开/不可编辑POST参数表单字段时,才使用此方法


请随意提供实际的上下文,以便我可以以更具体的方式提供帮助。

我已经编写了两个具有类似但不完全相同要求的应用程序。下面是我在上一篇文章中如何处理这些需求的。所有这些代码都是指定方法中的Application.cfc文件

在onApplicationStart中:

application.securityNotNeededPages = 
"somePage.cfm,someOtherPage.cfm,someMorePages.cfm";
在onRequestStart中

var ThisPage = listlast(cgi.PATH_INFO, "/");
...
if (ListFindNoCase(application.securityNotNeededPages, ThisPage) is false) {
security related code
}
else {
code for when the page does not to be secured
}

现在如何处理帖子,即什么重定向到登录页面?它是一个函数吗?它是一个包含吗?它是在Application.cfc的onRequest/onRequestStart事件中处理的吗?据我所知,它在Application.cfc中。系统中的每个页面都会查找clientID、userID,但会话变量是在Application.cfc文件中设置的。它运行一个isDefined函数来查看是否设置了userID。如果是,类型为client,则在客户端上查找companyID。如果这些都没有设置,它会设置一个url重定向到主页以强制用户登录,但是如果设置了url重定向,它会继续订单处理。我经常做类似的处理。我更喜欢将页面存储为数组而不是列表。