2014-02-11 100 views
1

验证用户后,他们的详细信息将存储在客户端范围内。当我们重定向到他们的仪表板时,所有添加到客户端作用域的新项目都会被清除。我已经清除了我的cookie和缓存,这使得显然没有客户端可变参数实际存储在cookie中(我在交换应用范围之前剩下一些剩余的)。coldfusion:为什么我的客户端变量被擦除?

这开始发生从使用application.cfm更新的应用的Application.cfc

我有以下的应用程序设置定义后:

<cfset this.SessionManagement = true> 
<cfset this.ClientManagement = true> 
<cfset this.SetClientCookies = true> 
<cfset this.sessionTimeout = CreateTimeSpan(0,8,0,0)> 
<cfset this.applicationTimeout = CreateTimeSpan(0,8,0,0)> 

你可以提出任何理由客户端变量只想消失?

+5

将变量存储在客户端作用域通常不被认为是一个好主意,如果可能的话,最好使用会话作用域。例如阅读http://www.dopefly.com/pages/ColdFusionClientVariablesFinalNail.cfm – duncan

+0

我认为应尽可能少地存储在会话中。使用现代浏览器,这些变量很容易以程序员不想要的方式更改值。 –

+0

你在为客户变量存储使用什么? – ale

回答

2

经过大量的疑难解答之后,我发现它是清除客户端作用域的应用程序名称。我们的名字模仿我们的应用程序的版本和版本号,所以它有完全停止(可能连字符)。在我将所有内容都转换为下划线后,它开始工作。

我这样做是因为我们所有的其他应用程序都使用相同的约定运行,所以我不确定它们为什么运行,而这不是,但这是解决方案。

<cfset this.name = "client_product_v1.6.1.0.r1.o"> 

成为

<cfset this.name = "client_product_v1_6_1_0_r1_o"> 

,并开始工作。

相关问题