ColdFusion如何映射会话?

ColdFusion如何映射会话?,coldfusion,jrun,Coldfusion,Jrun,我们正在使用ColdFusion 9.0.1,并开始注意到,在IE中,如果我们访问一个子域,然后是根域,例如www.example.com example.com,我们将获得两组会话cookie CFID、CFTOKEN、JSESSIONID ColdFusion似乎能够成功地管理这一事实,并将会话与适当的会话变量正确匹配 我想了解ColdFusion/JRUN如何处理会话变量映射。我知道应用程序名是等式的一部分,但是当存在多个JSESSIONID cookie时会发生什么。它如何决定哪一个是正

我们正在使用ColdFusion 9.0.1,并开始注意到,在IE中,如果我们访问一个子域,然后是根域,例如www.example.com example.com,我们将获得两组会话cookie CFID、CFTOKEN、JSESSIONID

ColdFusion似乎能够成功地管理这一事实,并将会话与适当的会话变量正确匹配


我想了解ColdFusion/JRUN如何处理会话变量映射。我知道应用程序名是等式的一部分,但是当存在多个JSESSIONID cookie时会发生什么。它如何决定哪一个是正确的?

默认情况下,Cookie是特定于域的,因此在www.foo.com上创建的Cookie不会遗留到foo.com。在Application.cfc中,需要将setdomaincookies值设置为true,如下所示:

<cfapplication name="myapp" setdomaincookies="true" />

这将使您的会话cookie成为*.foo.com的一部分,并且它们将从一个子域传送到另一个子域,不会出现问题。

实际上,我们希望域是分开的。不幸的是,IE似乎不允许这样做。因此,我试图了解会话是如何计算的,以确保不会发生冲突。在这种情况下,它将只使用当前域的cookie来获取正确的会话id。人们会这样想。但是,IE会在每个请求中发送两个cookie,JSSessionID没有域,因此ColdFusion正在设法使用正确的域。您是否有一个简单的测试用例来显示该行为?如果CF同时获得两个cookie值,但选择了正确的值,那么它必须在接收端检查域值。真奇怪,IE把两个饼干都寄回去了。。。这不是我所期望的,尽管我不是IE或Cookie专家。我能找到的最简单的例子是打开一个IE,我使用的是9浏览器,调试工具打开,网络捕获打开。如果你击中,你将得到一套代币。打击会给你一个不同的设置。返回www链接将发送两组令牌。
this.setdomaincookies = true;