2

我们刚刚升级到 IIS7,并且在 SESSION 变量方面遇到了间歇性问题。简而言之,只有极低比例的用户会在每次页面请求时获得新的 SESSION ID。清除 cookie 解决了我遇到的几乎所有使用的这个问题。

我的问题是......有没有办法以编程方式做到这一点?无法登录/无法让某个应用程序工作的人的呼叫百分比较低,所以这不是一个大问题,但我们必须整天引导人们完成清除 cookie 的过程。我没有读过,也没有看到强制用户清除 cookie 的方法。

这里的大多数其他问题都是到处都有这个问题的用途,就好像存在程序错误一样。我们的应用程序运行良好,只是一小部分在旧服务器上使用我们的应用程序的用户无法从新服务器获取新的会话 cookie。

我们正在运行 IIS6/CF9,我们升级到 IIS7/CF10。这个问题是跨浏览器的。我们已经看到它出现在 IE、FF 和 Chrome 中。

- 编辑 -

如果用户清除 cookie 并转到 domian.com,然后转到 sub.domain.com,则 domain.com cookie 优先,我猜浏览器永远不会返回它从 sub.domain.com 获得的 sub.domain.com cookie服务器。我猜,在 sub.domain.com 上打开 J2EE cookie 可以解决这个问题,但客户端仍然使用来自 domain.com 的 cookie。域 cookie 是默认设置的任何内容...即我们不会将其设置为 app.cfc 中的任何内容。我不知道它是如何在 domain.com 上设置的。

4

2 回答 2

1

在 Application.cfc 中,您是否将域 cookie 设置为 true?

于 2012-08-06T21:05:29.517 回答
0

听起来这可能与Adob​​e 去年 2 月推出的会话固定修补程序有关。您的 CF9 服务器是否已打好补丁?

简而言之,CF 现在会在每个会话上发布新的 CFID/TOKEN 值,并且不会使用现有的 cookie 值(以防止会话劫持)。确保您的应用正在将这些新值写入 cookie,并且不允许使用现有的 cookie 值。

这是一个详细的解释正如该帖子的评论中所指出的,使用 J2EE 会话确实是解决问题的一种方法。

于 2012-08-15T07:35:20.277 回答