2009-07-28 62 views
2

比方说,我有本地主机,localhost2都指向127.0.0.1在//localhost/test/test.cfm会话可以转移到不同的域指向同一个CF实例吗?

(\ wwwroot的\测试\ test.cfm)

<cfset session.name="HAHA"> 
<cfcookie domain=".localhost2" name="CFID" value="#session.cfid#"> 
<cfcookie domain=".localhost2" name="CFTOKEN" value="#session.cftoken#"> 
<cflocation url="//localhost2/test/test2.cfm" addtoken="false"> 

在// localhost2 /test/test2.cfm(\ wwwroot的\测试\ test2.cfm)

<cfdump var="#session#"> 

我预期//localhost2/test/test2.cfm显示session.name = “HAHA”,但它会产生一个新的会话相反,为什么?是否因为我无法从localhost设置.localhost2 cookie?

谢谢!

+0

我试着用one.localhost和two.localhost 并设置cfcookie domain =“.localhost”,它的工作原理! :) – Henry 2009-07-28 22:33:25

回答

3

会话可以跨域,但Cookie不能。 (正如您发现的,子域名有些不同。)出于安全原因,abc.com无法访问xyz.com的Cookie。但是,CF本身并不关心你使用的域名。

所以,如果你有一个链接而不是通过URL中的cfid和cftoken,会话将会丢失。但是,如果您在链接(或cflocation等)中传递了标识和标记,则会话仍将保留。

相关问题