如何检查用户是否已登录?

时间:2017-11-20 13:44:14

标签: coldfusion coldfusion-9 cflogin

我想在我的应用中实现锁定功能。一旦用户在我的应用程序中选择了客户,该记录就不应该对其他用户可用。我创建了包含User IDRecord ID的锁定表。因此,在其他人尝试选择相同记录的情况下,我将检查锁定表。如果存在Record ID,则在Lock表中,我应该检查用户是否仍然登录。我想知道是否有办法在ColdFusion 9中检查它?

以下是我的会话变量和函数的示例,它应该更新Lock表:

userdata    
APPFNAME    John
APPJOBTITLE Manager
APPLNAME    Miller
APPUSERID   G890H32
APPUSER     jmiller

    <cffunction name="onSessionEnd" returnType="void" output="true">  
        <cfargument name="SessionScope" type="struct" required="true">  
        <cfargument name="AppScope" type="struct" required="true">  

        <cfif StructKeyExists(session,"userdata")>
            <cfset currentDate = DateFormat(Now(),'mm/dd/yyyy')>
            <cfset currentTime = TimeFormat(Now(),'hh:mm tt')>

            <cfquery name="updateLock" datasource="Test">
                UPDATE Locked
                SET l_active = '0',
                    l_udt = <cfqueryparam value="#currentDate#" cfsqltype="cf_sql_date" maxlength="10" />,
                    l_utime = <cfqueryparam value="#currentTime#" cfsqltype="cf_sql_char" maxlength="8" />
                WHERE l_userID = <cfqueryparam value="#trim(request.userdata.APPUSERID)#" cfsqltype="cf_sql_char" maxlength="10" />
            </cfquery>
        </cfif>
    </cffunction> 

我正在处理的系统没有任何存储当前登录用户的临时表。检查用户是否已登录的另一个选项是什么?我看到几篇与cflogin相关的帖子,但没有一个帖子解释了这个特定的场景。如果有人可以提供帮助,请告诉我。

1 个答案:

答案 0 :(得分:2)

我建议在onSessionEnd()的{​​{1}}方法中添加查询,以更新锁定表以指示用户不再登录。此更新是否删除记录或更新字段是否已启动给你。