如何检查用户是否仍然登录? Coldfusion 9/10

时间:2017-12-11 21:35:30

标签: ajax coldfusion locking coldfusion-9 coldfusion-10

我在现有系统中创建了新的应用程序。我的应用程序中的一项功能需要锁定过程。一旦用户选择了记录,这应该禁用当前登录系统的所有其他用户的选项/按钮编辑。我有一个功能,用户可以激活onClick(在解锁按钮上)或用户注销。此功能将删除用户的记录。这一切都很好,我没有遇到任何问题。

之后我注意到有些记录被锁定超过一天。所以这引起了一些问题。我尝试在我的应用程序中调试并检测问题。我认为发生了一些用户从不注销系统他们只是关闭浏览器。在这种情况下,应该负责删除记录的函数永远不会被触发。我想知道如何解决这个问题。

有没有办法检查用户是否不再有效?我提出的一个可能的解决方案是每隔5分钟发送一次ajax调用。如果该调用将返回false,那么我将删除锁。我还不确定在哪里发送ajax电话。应该发送到Application.cfc还是其他地方?如果有人能给我一些例子或建议会有所帮助。

另外我想提一下,我试图为我的应用程序设置Application.cfc页面,但如果我点击我的应用程序页面的链接将返回空白。以下是我的例子:

<cfcomponent output="false" extends="Map.Application" hint="Secondary application event handler">
    <cffunction name="onRequeststart" access="public" returntype="boolean" output="false"
        hint="Handles pre-page processing for each request.">
        <cfargument name="thePage" type="string" required="true" hint="I am the template requested by the user."/>                 

        <!--- This application.cfc is extending the root Application.cfc --->
        <cfif SUPER.OnRequestStart( ARGUMENTS.thePage )>
            <cfset REQUEST.AppName = "myApp">
            <cfreturn true />
        <cfelse>
            <cfreturn false />
        </cfif>
    </cffunction>

</cfcomponent>

1 个答案:

答案 0 :(得分:0)

您不需要使用Ajax。 只需使用本机cfschedule为登录用户加载检查器即可。 您可以在db中保留登录用户详细信息。 一旦db值与登录用户存在差异,就会将页面加载到最终用户会话。 这只有在您知道用户何时关闭系统时才有效。显然没有退出。