我的应用程序中的会话变量有问题.为了简化,我的coldfusion应用程序在使用iFrame的点网应用程序中.主应用程序使用dot net,因此用户登录到dot net app.用户成功登录后,即可访问我的coldfusion应用程序.通过链接.所以没有登录我的coldfusion应用程序.(老板不希望我们的用户登录两次!).
为了区分每个用户,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>
Run Code Online (Sandbox Code Playgroud)
如果我以用户A身份登录,则会创建这两个会话,然后当我退出时(通过dot net app),然后再次以用户B身份登录,为用户B创建另一组会话,但属于用户A的会话变量仍然存在.这搞乱了一切.
要仅维护一次运行的一组会话,我在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
Run Code Online (Sandbox Code Playgroud)
这项工作,我可以登录并注销不同的用户,具有不同的角色和访问完美但我注意到的一件事仍然保持不变是cookie.当我cfdump var ="#cookie#"时,我看到相同的jsessionid = C2AEE274A09334EB98CCB2D332D6CADA.cfusion
我的问题是:我应该对cookie做点什么吗?我是否应该让它过期并为每个新用户重建cookie,就像我对他们的会话所做的那样?如何删除cookie以及如何为用户重建cookie?
coldfusion ×1