如何在Coldfusion中超出客户端范围的变量?

时间:2010-03-24 16:05:55

标签: cookies coldfusion timeout scope

如果这是一个“问题”,我道歉。似乎答案应该很容易谷歌,但我还没有找到它。

我正在开发一个大型Coldfusion应用程序,它在客户端范围内存储大量会话/用户数据(即< cfset Client.UserName =“JoshuaC”>)。我没有写这个应用程序,我没有很大的重构它。

我被赋予了将客户端变量设置为72小时后超时的任务。我不完全确定如何做到这一点。如果我编写了应用程序,我会将变量存储在Session范围中,然后更改CFAPPLICATION标记的sessiontimeout属性。虽然如此,我不确定该超时是否会影响客户端变量,或者它们的持久性水平是什么。应用程序现在的工作方式,客户端变量永远不会超时,只清除用户的cookie,或访问将所有客户端范围的应用程序变量设置为“”的注销页面,将清除这些值。

当然,我可以创建某种类型的时间戳变量,如Client.LastAccessDateTime,并在Application.cfm中添加一些内容,以清除客户端变量,如果该日期时间超过Now()之前的72小时。但是必须有一个更好的方法,对吗?

2 个答案:

答案 0 :(得分:4)

根据您是使用数据源还是注册表作为客户端存储,您必须设置“在

上清除未被访问的客户端90天到3天(= 72小时)的数据”

ColdFusion Administrator =>客户变量=>注册表

客户变量=> NameOfDatabase 页面。

如果客户变量存储为cookie,则必须在设置cookie时调整过期时间。

“客户端变量”页面上的“清除时间间隔”仅控制ColdFusion在客户端存储上执行清除操作的频率(=寻找过期的客户端变量以便删除它们)。

答案 1 :(得分:2)

我认为您正在寻找清除间隔设置,该设置在服务器设置>中的CF管理员中配置。客户变量页面。默认间隔为1小时7分钟。

编辑:此设置值并非您所需的。对不起,看看我对清除的评论 - 认为它更准确。