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

时间:2013-03-01 05:23:33

标签: sql login coldfusion

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

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

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

1 个答案:

答案 0 :(得分:9)

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

粗略的例子,假设您正在使用ColdFusion 9+ 的的Application.cfc

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

    public function onSessionStart() {
        param name='session.isAuthenticated' default=false;
    }
}

<强> checkAuthentication.cfm

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

在您的登录处理页面中,确保将session.isAuthenticated设置为true,然后它应该跳过检查/要求登录。您还可以查看CFLOGIN的内置身份验证功能。

希望有所帮助。