如果我使用 J2EE 会话,我需要 ColdFusion 会话吗?
If I use J2EE session do I need ColdFusion session?
我最近创建了一个新系统。在这个项目中,我能够使用 ColdFusion 中的会话管理。在我开始深入研究会话及其工作原理后,Adobe 文档中几乎没有什么不是很清楚的地方。关于 J2EE 与 ColdFusion 会话的整篇文章都说 J2EE 被推荐为更安全。 如果我使用 J2EE,我是否仍然必须使用 ColdFusion 会话?
在我的 Application.cfc 中,我有这些设置:
<cfset THIS.sessionManagement = true>
<cfset THIS.applicationTimeout = CreateTimeSpan(0,1,0,0)>
<cfset THIS.sessionTimeout = CreateTimeSpan(0,0,30,0)>
在 ColdFusion Administrator 中启用 J2EE 后,我的会话范围显示:
struct
loggedin false
sessionid 0AB2908F874E5BE7C792D0AA6B3847B2.cfusion
urltoken CFID=8321&CFTOKEN=86134751&jsessionid=0AB2908F874E5BE7C792D0AA6B3847B2.cfusion
有CFID
、CFTOKEN
、sessionid
。我想知道如果 sessionid
存在,我是否必须保留 CFID
和 CFTOKEN
?如果没有,如何删除或关闭它们?
在我的 AppFunctions.cfc
中有两个 cffunctions
。一个处理注销过程,另一个处理会话超时过程。一旦用户不再活跃,这两者都应该结束会话。我找到了两个不同的功能来做到这一点。
sessionInvalidate()
这将 end/clear ColdFusion 会话
getPageContext().getSession().invalidate()
这将结束 J2EE 会话
但是,如果我在我的应用程序中启用了两个会话,那么在这种情况下我将如何结束会话?我应该同时使用这两种方法还是有其他方法可以做到这一点?
Adobe 文档对此没有很好的解释。如果有人知道处理此问题的好方法,请告诉我。由于这是单页应用程序,我也想知道如何保护我的 Ajax 调用。每次用户发送请求时,我都想检查他们的会话和凭据是否有效。
从评论中推广以获得更高的知名度
你 SetClientCookies
等于 true/yes 吗?如果是这样,那将创建我相信的 CFID 和 CFTOKEN cookie。会话管理不需要该选项 - 它用于客户端管理。
另一种可能性是您有本地 cookie,其中包含以前测试的 cookie。删除您的浏览器 cookie,将 SetClientCookies
设置为否,然后重试。
我最近创建了一个新系统。在这个项目中,我能够使用 ColdFusion 中的会话管理。在我开始深入研究会话及其工作原理后,Adobe 文档中几乎没有什么不是很清楚的地方。关于 J2EE 与 ColdFusion 会话的整篇文章都说 J2EE 被推荐为更安全。 如果我使用 J2EE,我是否仍然必须使用 ColdFusion 会话?
在我的 Application.cfc 中,我有这些设置:
<cfset THIS.sessionManagement = true>
<cfset THIS.applicationTimeout = CreateTimeSpan(0,1,0,0)>
<cfset THIS.sessionTimeout = CreateTimeSpan(0,0,30,0)>
在 ColdFusion Administrator 中启用 J2EE 后,我的会话范围显示:
struct
loggedin false
sessionid 0AB2908F874E5BE7C792D0AA6B3847B2.cfusion
urltoken CFID=8321&CFTOKEN=86134751&jsessionid=0AB2908F874E5BE7C792D0AA6B3847B2.cfusion
有CFID
、CFTOKEN
、sessionid
。我想知道如果 sessionid
存在,我是否必须保留 CFID
和 CFTOKEN
?如果没有,如何删除或关闭它们?
在我的 AppFunctions.cfc
中有两个 cffunctions
。一个处理注销过程,另一个处理会话超时过程。一旦用户不再活跃,这两者都应该结束会话。我找到了两个不同的功能来做到这一点。
sessionInvalidate()
这将 end/clear ColdFusion 会话getPageContext().getSession().invalidate()
这将结束 J2EE 会话
但是,如果我在我的应用程序中启用了两个会话,那么在这种情况下我将如何结束会话?我应该同时使用这两种方法还是有其他方法可以做到这一点?
Adobe 文档对此没有很好的解释。如果有人知道处理此问题的好方法,请告诉我。由于这是单页应用程序,我也想知道如何保护我的 Ajax 调用。每次用户发送请求时,我都想检查他们的会话和凭据是否有效。
从评论中推广以获得更高的知名度
你 SetClientCookies
等于 true/yes 吗?如果是这样,那将创建我相信的 CFID 和 CFTOKEN cookie。会话管理不需要该选项 - 它用于客户端管理。
另一种可能性是您有本地 cookie,其中包含以前测试的 cookie。删除您的浏览器 cookie,将 SetClientCookies
设置为否,然后重试。