Using client and session variables without cookies
這是用戶能夠在他們的瀏覽器禁用cookie。在這種情況下,ColdFusion無法自動維護客戶端狀態。通過在應用程序頁面之間傳遞客戶端標識信息,您可以使用客戶端或會話變量而不使用Cookie。然而,這種技術有顯著的限制,具體如下:
客戶端變量實際上是相同的會話變量,但他們留下無法使用的數據在客戶端數據存儲。 因爲客戶端的系統沒有保留任何標識信息,所以下次用戶登錄時,ColdFusion無法識別以前客戶端的用戶,並且必須爲該用戶創建新的客戶端ID。來自前一個會話的有關用戶的任何信息都不可用,但在ColdFusion刪除它之前,它仍保留在客戶端數據存儲中。如果您清除ColdFusion管理員的「保留未訪問客戶端的清除數據」選項,則ColdFusion永不刪除此數據。 因此,如果您允許用戶禁用cookie,請勿使用客戶端變量。要在沒有cookie的情況下保留客戶信息,要求用戶使用唯一的ID登錄。然後,您可以將用戶特定的信息以用戶的ID作爲密鑰保存在數據庫中。
每次用戶在瀏覽器中直接請求頁面時,ColdFusion都會創建一個新會話,因爲新請求不包含指示會話或客戶端的狀態信息。
注意:您可以通過設置的Application.cfc或This.setClientCookies變量cfapplication標籤的setClientCookies屬性
號
要使用的ColdFusion的ColdFusion防止從客戶端發送信息到瀏覽器餅乾會話變量而不使用cookie,每個頁面必須將CFID和CFToken值傳遞給它作爲請求URL一部分調用的任何頁面。如果頁面包含任何HTML hrefa = links,cflocation標籤,表單標籤或cfform標籤,則標籤必須傳遞標籤URL中的CFID和CFToken值。要使用J2EE會話管理,請在頁面請求中傳遞jsessionid值。要使用ColdFusion客戶端變量和J2EE會話變量,請在URL中傳遞CFID,CFToken和jsessionid值。
注意:當在URL中提供CFID和CFTOKEN時,行爲如下所示:如果會話存在,則會忽略URL中的CFID和CFTOKEN。如果會話不存在,則使用URL中的CFID和CFTOKEN來驗證會話,並在會話有效時使用該會話。如果會話無效,則創建新的會話。 CFID和CFTOKEN被重新生成。
的ColdFusion提供URLSessionFormat功能,執行以下操作:
如果客戶不接受Cookie,會自動將所有需要的客戶識別信息的URL。
如果客戶端接受cookie,不會附加信息。 URLSessionFormat函數自動確定需要哪些標識符,並只發送所需的信息。它還提供了一種更加安全可靠的方法來支持客戶端標識,而不是手動編碼每個URL中的信息,因爲它僅發送所需的信息,並且在需要時發送,而且更容易編碼。
要使用URLSessionFormat函數,請在函數中包含請求URL。例如,下面的CFFORM標籤帖到另一頁的請求併發送客戶身份識別,如果必要的話:
<cfform method="Post" action="#URLSessionFormat("MyActionPage.cfm")#>
如果使用在多個URLSessionFormat功能在同一個頁面的網址,你可以得到一個小的性能改進和簡化例如:
<cfset myEncodedURL=URLSessionFormat(MyActionPage.cfm)>
<cfform method="Post" action="#myEncodedURL#">
請務必閱讀有關[鎖定指南](http://wwwimages.adobe)中有關ColdFusion會話和cookie的建議。 COM /內容/大壩/ ACOM/EN /產品/ ColdFusion的/ PDF文件/ ColdFusion的-2016-鎖定-指南.pdf)。 –