我将测试服务器从ColdFusion 10更新到ColdFusion 11 30天Enterprise trail edition with update 7。
但是,每当我在浏览器中点击刷新时,我都会得到一个新的cfid。 因此,找不到有效的会话,因此登录页面不起作用。
我在coldfusion管理页面中检查了会话,在浏览器中检查了我的cookie,它们都是正确创建的。
这就是我在application.cfm
中的内容<CFAPPLICATION NAME="TESTWEB"
CLIENTMANAGEMENT="Yes"
SETCLIENTCOOKIES="Yes"
SESSIONMANAGEMENT="Yes"
SESSIONTIMEOUT = "#CreateTimeSpan(7,0,0,0)#"
SETDOMAINCOOKIES = "No">
然而,当我从主机打开页面时,每次点击刷新时cfid都不会改变,所以一切正常。
知道什么可能导致我的问题吗?
编辑:
答案 0 :(得分:1)
我已经通过在ColdFusion管理员中启用它来切换到使用JEE会话。我的会议现在正在进行中。
答案 1 :(得分:1)
我知道这是一个老问题,但我会留在这里帮助其他人,以防他们尝试了上述所有方法但仍然遇到问题。
检查您的 Cookie Samesite 值。
如果您已将旧应用升级到较新的 CF 服务器,以防止 Coldfusion 在刷新时更改 CFID 和 CFTOKEN,或者在您进行引用会话或 cookie 变量的 AJAX 调用时更改 CFID 和 CFTOKEN - 以及上述其他人所述的所有推荐设置,请检查以下:
要在 CF 2016、2018 的服务器级别设置 Cookie Samesite 值:
在Coldfusion Admin Settings中,Server Settings > Memory Variables > Session Cookie Settings,将“Cookie Samesite默认值”设置为“-”或“LAX”(LAX为NULL时的默认值)
在站点级别设置 Cookie Samesite 值:
对于 ColdFusion(2018 版)更新 9 和 ColdFusion(2016 版)更新 15
您可以使用 cfcookie 标签。
对于使用 CF11 或更旧 CF 版本的用户,您可以在 IIS 或 Apache 中设置响应标头。我假设有这个问题的人(cfid 和 cftoken 在刷新时更改)是因为他们对 samesite 属性进行了更改并破坏了某些内容。在这种情况下,请查看您是如何实施 SameSite Cookie 的,以及您将该值设置为什么。