2009-07-28 61 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等)中傳遞了標識和標記,則會話仍將保留。

相關問題