0

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

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

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

4

1 回答 1

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 的内置身份验证功能。

希望有点帮助。

于 2013-03-01T09:46:50.660 回答