Sql 在coldfusion中:如何记住用户已登录?

Sql 在coldfusion中:如何记住用户已登录?,sql,login,coldfusion,Sql,Login,Coldfusion,我在登录页面上有一个用户名/密码,进入“会员”页面。基本上,我使用了一个语句来查找SQL查询中的行数,如果不是1(正确的用户名/密码组合),那么它会重定向回登录页面 但是,在“成员”页面上,有一些表单可以执行各种操作,比如使用SQL向表中添加新行,或者返回对联接表的查询。这些表单还链接回此“成员”页面,但不再满足登录条件(需要用户名变量和密码变量) 那么,如何让服务器记住用户是否登录?在application.cfm或application.cfc中,您需要启用sessionManagement

我在登录页面上有一个用户名/密码,进入“会员”页面。基本上,我使用了一个语句来查找SQL查询中的行数,如果不是1(正确的用户名/密码组合),那么它会重定向回登录页面

但是,在“成员”页面上,有一些表单可以执行各种操作,比如使用SQL向表中添加新行,或者返回对联接表的查询。这些表单还链接回此“成员”页面,但不再满足登录条件(需要用户名变量和密码变量)


那么,如何让服务器记住用户是否登录?

在application.cfm或application.cfc中,您需要启用sessionManagement=true,以便开始跟踪页面请求中的变量。然后,当用户登录时,您将设置一个变量,如isAuthenticated=true。仅当isAuthenticated=false或undefined时重定向到登录页面(您可以使用onSessionStart of Application.cfm中的cfparam设置默认值)

粗略的示例,假设您使用的是ColdFusion 9+ 应用程序.cfc

component {
    this.name = 'myApplication';
    this.SessionManagement = true;

    public function onSessionStart() {
        param name='session.isAuthenticated' default=false;
    }
}
检查身份验证.cfm

<cfscript>
if (!session.isAuthenticated) {
    // send to login page
}
</cfscript>

如果(!session.isAuthenticated){
//发送到登录页面
}
在登录处理页面中,确保将session.isAuthenticated设置为true,然后它应该跳过检查/请求登录。您还可以查看CFLOGIN的内置身份验证功能

希望这有点帮助