我有一个使用coldfusion会话管理(而不是J2EE)会话管理的应用程序。
我们有一个客户,他最近将公司的流量转移到我们的网络中通过代理服务器来。
因此,对于我们的Coldfusion服务器,对于这家公司的所有帐户,似乎所有流量都来自这一个IP地址。
在会话变量中,第1部分保存在cflock中,第2部分保存在可编辑的会话变量中。我可能会被误解,但我们已经这样做了,因为我们在整个应用程序的使用过程中根据需要修改了一些值。
我们现在遇到这个客户端的问题,他们的会话变量混淆了(?)。我们有一个案例,我们设置了一个时间戳..当需要查找时,它是空的。从它的外观来看,这是因为同一令牌上的另一个用户。
我最初的想法是考虑修改我们现有的会话管理以某种方式生成一个独特的cftoken / cfid,或者开始使用jsession_ID,如果这解决了问题。
我已经对这个问题进行了一些基础研究,找不到类似的东西,所以我想我会在这里问。
谢谢!
答案 0 :(得分:2)
据我所知,使用J2EE会话变量没有“缺点”,除非你真的需要在用户关闭浏览器后激活会话。我认为您应该尝试查看应用程序的行为,看看是否可以为您节省重构的麻烦。
要确保您使用所有其他设置,请尝试以下操作:
<cfdump var="#APPLICATION.GetApplicationSettings()#" label="Application settings" />
如果你打开了会话管理和客户端cookie,一切都很好,所以试试j2ee会话变量。
答案 1 :(得分:2)
我多年来一直遇到类似的问题。
JSession cookie似乎有帮助(没有硬数据),但我重新实现的一个解决方案是在每个页面上使用no-cache和cache expiry标头。
http://www.bpurcell.org/blog/index.cfm?entry=1075&mode=entry提供了有关如何实现此功能的一些细节。
在极端情况下,我们被迫在链接/表单中传递令牌和cfid,但这是一个要实现的PITA,所以我首先尝试缓存到期/预防解决方案。