【问题标题】:If I use J2EE session do I need ColdFusion session?如果我使用 J2EE 会话,是否需要 ColdFusion 会话?
【发布时间】:2018-03-07 03:35:23
【问题描述】:

我最近创建了一个新系统。在这个项目中,我能够在 ColdFusion 中使用会话管理。一旦我开始深入研究会话以及它们是如何工作的,Adobe 文档中几乎没有什么东西不是很清楚。有整篇关于 J2EE vs 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

CFIDCFTOKENsessionid。我想知道如果sessionid 存在,我是否必须保留CFIDCFTOKEN?如果没有,如何删除或关闭它们?

在我的AppFunctions.cfc 中有两个cffunctions。一个处理注销过程,另一个处理会话超时过程。一旦用户不再活动,这两者都应该结束会话。我发现了两个不同的功能来做到这一点。

  • sessionInvalidate() 将结束/清除 ColdFusion 会话
  • getPageContext().getSession().invalidate() 将结束 J2EE 会话

但是,如果我在我的应用程序中启用了两个会话,在这种情况下我将如何结束会话?我应该使用这两种方法还是有其他方法可以做到这一点?

Adobe 文档没有很好地解释这一点。如果有人知道处理此问题的好方法,请告诉我。由于这是单页应用程序,我还想知道如何保护我的 Ajax 调用。每次用户发送请求时,我都想检查他们的会话和凭据是否有效。

【问题讨论】:

  • 你有SetClientCookies 等于真/是吗?如果是这样,那将创建我相信的 CFID 和 CFTOKEN cookie。您不需要该选项进行会话管理。另一种可能性是你有本地cookies。删除浏览器 cookie,将 SetClientCookies 设置为 no,然后重试。
  • 我已将客户端 cookie 设置为 false,这样就成功了。谢谢。

标签: session jakarta-ee session-cookies coldfusion-10 session-management


【解决方案1】:

从 cmets 推广以提高知名度

你有SetClientCookies 等于真/是吗?如果是这样,那将创建我相信的 CFID 和 CFTOKEN cookie。您不需要该选项进行会话管理 - 它用于客户端管理。

另一种可能性是您有本地 cookie,其中包含先前测试中的那些。删除浏览器 cookie,将 SetClientCookies 设置为 no,然后重试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2017-05-17
    • 1970-01-01
    • 2015-01-05
    • 2011-01-22
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多