我创建了以下Application.cfc,除了一件事以外,一切正常。我试图让Application.cfc在短暂的不活动后退出。但是,ApplicationTimeout
或SessionTimeout
的所有工作都没有奏效。
有人有任何建议吗?
谢谢
<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>
答案 0 :(得分:0)
尝试将 idletimeout 属性添加到 cflogin 标记。将idletimeout的值设置为等于sessionTimeout的值。 您可以在此处查看 cflogin 的文档:http://help.adobe.com/livedocs/coldfusion/8/htmldocs/help.html?content=Tags_j-l_07.html
答案 1 :(得分:0)
我遇到了类似的问题。但是,如果没有cfqueryparam标记,您永远不应该使用用户提供的数据运行cfquery。你没有它就要求SQL注入。
答案 2 :(得分:-1)
需要使用CreateTimeSpan变量为sessionTimeout变量生成时间戳。