【问题标题】:Coldfusion 10 sessionTimeout is not workingColdfusion 10 sessionTimeout 不起作用
【发布时间】:2013-04-13 02:01:38
【问题描述】:

我创建了以下 Application.cfc 并且除了一件事之外一切正常。我试图让 Application.cfc 在一段时间不活动后注销。但是,我对 ApplicationTimeoutSessionTimeout 的努力都没有奏效。

有人有什么建议吗?

谢谢

<cfcomponent> 
<cfset This.name = "AndWhat"> 
<cfset This.sessionManagement="True"> 
<cfset This.loginstorage="session"> 
<cfset This.datasource = "database">
<cfset This.ormenabled = "true">
<cfset This.applicationTimeout = createTimeSpan( 0, 0, 1, 0 )>
<cfset This.sessionTimeout = createTimeSpan( 0, 0, 1, 0)>


<cffunction name="onRequestStart" access="remote" > 
    <cfif IsDefined("Form.logout")> 
        <cflogout> 
    </cfif> 
    <cflogin >
        <cfif NOT IsDefined("cflogin")> 
            <cfinclude template="loguser.cfm"> 
            <cfabort> 
        <cfelse> 
            <cfif cflogin.name IS "" OR cflogin.password IS ""> 
                <cfoutput> 
                    <script type="text/javascript">
                        alert("Um, Really?! Please supply a valid username and password!");
                    </script>
                </cfoutput> 
                <cfinclude template="loguser.cfm"> 
                <cfabort> 
            <cfelse > 
                 <cfquery name="myNewLoginQuery" dataSource="database"> 
                    SELECT username, password, policy
                    FROM people 
                    WHERE 
                    username = '#cflogin.name#' 
                    AND password = '#cflogin.password#' 
                </cfquery> 
                <cfif loginQuery.policy NEQ ""> 
                    <cfloginuser name="#cflogin.name#" Password = "#cflogin.password#"> 
                <cfelse> 
                    <cfoutput> 
                        <script type="text/javascript">
                            alert("Um, Really?! Please supply a valid username and password!");
                        </script>
                    </cfoutput>     
                    <cfinclude template="loguser.cfm"> 
                    <cfabort> 
                </cfif> 
            </cfif>     
        </cfif> 

    </cflogin>
</cffunction>
</cfcomponent>

【问题讨论】:

  • 不知道,但不应该在 onSessionStart() 而不是 onRequestStart() 上管理以会话为中心的东西吗?如果可以避免的话,我也可能不会打扰&lt;cflogin&gt;。它真的没有什么好处。
  • 只是一个随机猜测:尝试为应用程序超时和会话超时设置不同的时间跨度。应用程序通常是几个小时,会话是 30 分钟左右。目前它们在您的代码中是相同的,这可能是问题的根源。
  • 另外,你怎么知道超时不起作用?我建议实现onSessionEnd() 处理程序并使用cflog 记录超时。您将获得更多研究信息。

标签: coldfusion session-timeout coldfusion-10 application.cfc


【解决方案1】:

尝试将 idletimeout 属性添加到 cflogin 标记。将 idletimeout 的值设置为 sessionTimeout 的值。 您可以在此处查看 cflogin 的文档:http://help.adobe.com/livedocs/coldfusion/8/htmldocs/help.html?content=Tags_j-l_07.html

【讨论】:

  • 请不要发布仅链接的答案。
【解决方案2】:

我遇到了类似的问题。但是你永远不应该在没有 cfqueryparam 标签的情况下使用用户提供的数据运行 cfquery。您要求没有它的 SQL 注入。

【讨论】:

    【解决方案3】:

    需要使用 CreateTimeSpan 变量为 sessionTimeout 变量生成时间戳。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多