我有一個用的Application.cfc以下設置:的ColdFusion 10 CFCookie沒有履行域屬性
<cfset THIS.Name = "Test01" />
<cfset THIS.ApplicationTimeout = CreateTimeSpan(1,0,0,0) />
<cfset THIS.sessionTimeout = CreateTimeSpan(1,0,0,0) />
<cfset THIS.clientManagement = false />
<cfset THIS.SessionManagement = true />
<cfset THIS.SetClientCookies = false />
<cfset THIS.setDomainCookies = false />
我試圖發送以下Cookie:
<cfcookie name="CFID" value="#session.CFID#" domain=".test01.domain.net" path="/" expires="never">
<cfcookie name="CFTOKEN" value="#session.CFTOKEN#" domain=".test01.domain.net" path="/" expires="never">
然而,什麼被髮送到瀏覽器是:
Set-Cookie: CFID=6389; Domain=.domain.net; Expires=Fri, 12-Jun-2043 22:14:17 GMT; Path=/; HttpOnly:
Set-Cookie: CFTOKEN=783fa62afecfd571%2DB1069303%2D3048%2D3344%2DAA97ADAF73598FA6; Domain=.domain.net; Expires=Fri, 12-Jun-2043 22:14:17 GMT; Path=/; HttpOnly
無論我把什麼值放在域或路徑,它總是發送有相同的標題。如果我嘗試使用cfheader
,它不會發送任何內容。唯一的一次我能得到它來發送cookie頭沒有域的值是通過設置SetClientCookies
爲true:
Set-Cookie: CFID=6391; Expires=Fri, 12-Jun-2043 22:21:38 GMT; Path=/; HttpOnly
不過,我可以不再會使用StructDelete
也不CFCookie
與屬性擺脫餅乾現在到期(實際上它創建了第二組Cookie)。
我的主要目標是簡單地發送CFID和CFTOKEN餅乾沒有域(或者至少是不帶前導時間,例如test01.domain.net)
您是否看到過[設置HTTPOnly cookies](http://www.petefreitag.com/item/764.cfm)上的這篇文章?在CF10上,這是在Application.cfc中設置'this.sessioncookie.httponly = true'的問題。 – imthepitts
設置'this.sessioncookie.httponly = true'和'THIS.SetClientCookies = false'時,當name屬性是CFID或CFTOKEN時,CF仍然會忽略任何cfcookie屬性。在CFAdmin中,原始服務器的HTTPOnly設置爲true。 – Alex
請參閱:http://stackoverflow.com/questions/17583768/why-doesnt-cfcookie-allow-setting-domain-to-a-subdomain – Henry