我的應用中的會話變量有問題。簡而言之,我的coldfusion應用程序在使用iFrame的dot net應用程序中。主要應用程序使用點網,所以用戶登錄到網點應用程序。 一旦用戶成功登錄,他們可以訪問我的coldfusion應用程序。通過鏈接。所以沒有登錄到我的coldfusion應用程序。 (老闆不希望我們的用戶登錄兩次!)。當我更改其他會話變量時,是否需要刪除Coldfusion中的cookie
爲了區分每個用戶,dot net app將兩個url變量url.userid和urlusergroup傳遞給我的coldfusion應用程序。然後,我根據這些url變量(如session.userid和session.usergroup)創建會話變量,以便在我的coldfusion應用程序中漫遊時區分每個用戶及其角色。 這是我如何創建會話: 在我的Application.cfc(ColdFusion的10)OnSessionStart我:
<cfset session.userid= url.userid>
<cfset session.usergroup= url.usergroup>
如果我登錄爲用戶A,創建了這兩個會議,然後當我註銷(通過點網應用程序),然後以用戶B再次登錄,爲用戶B創建另一組會話,但屬於用戶A的會話變量仍然存在。這搞砸了一切。
要只維持1臺同時運行的會話,我做的,我index.cfm如下:
<CFIF StructKeyExists(session,"userid") >
<cfif session.usergroup NEQ URL.usergroup AND session.userid NEQ url.userid>
<cfset sessionInvalidate() />
<cfset session.userid = url.userid>
<cfset session.usergroup = url.usergroup>
</cfif>
</CFIF
這項工作,我可以登錄和註銷爲不同的用戶提供不同的角色和訪問完美但是我注意到的一件事仍然保持不變就是cookie。 當我cfdump var =「#cookie#」我看到相同jsessionid = C2AEE274A09334EB98CCB2D332D6CADA.cfusion
我的問題是:我應該做一些與cookie?我是否也應該讓它過期併爲每個新用戶重新構建cookie,就像我在會話中所做的一樣? 如何刪除一個cookie以及如何爲用戶重建一個?
我個人不會擔心cookie。我假設你網絡上的用戶都有不同的電腦。如果是這種情況,他們的cookies不會被共享。所以如果用戶A註銷,然後10分鐘後他們重新登錄,他們仍然會有相同的cookie。但用戶B可以登錄下一個,因爲她在不同的PC上,她的cookie會有所不同。只有當用戶共享PC時,您才能看到cookie之間保持一致的時間。但即使在這種情況下,您的會話刪除代碼應該照顧它。 –