2

在登录时,coldfusion 服务器分配给我 aCFID和 a CFTOKEN。稍后使用这些CFID以及CFTOKEN如何检查我的会话是否仍然存在。

换句话说,我想要一个函数,它将判断会话是否CFIDCFTOKEN这些会话相关CFID并且CFTOKEN仍然存在。

谢谢

4

2 回答 2

8

实现这一点的最简单方法是在用户登录时在会话中设置一个标志。

例如

<cfset session.loggedin = true />

那么当你想检查用户是否仍然有一个有效的会话时,你可以做

<cfparam name="session.loggedin" default="false" />
<cfif NOT session.loggedin>
  <!--- do something here --->
</cfif>
于 2012-12-09T15:37:41.037 回答
1

克里斯的回答没有任何问题,通常是检查会话时的标准规范。

这两个 cookie 旨在将您的浏览器与您的会话“链接”,而不是实际维护该会话(事实上,我相信这些 cookie 将在 30 年内到期(?),如果您使用的J2EE session management话,甚至会被忽略'我没有弄错)。从文档

要使用客户端和会话变量,ColdFusion 必须能够识别客户端。它通常通过在客户端系统上设置以下两个 cookie 值来实现:

CFID:顺序客户端标识符

CFToken:随机数客户端安全令牌 这些 cookie 将客户端唯一标识到 ColdFusion,ColdFusion 还维护变量的副本作为会话和客户端范围的一部分。

正如你在这里所读到的,Ben Nadel 做了一些玩弄CFIDCFTOKENCF 使用相同的地方CFIDCFTOKENcookie 在过期后创建新会话。

至于您的“ColdFusion Proper”方式,您可以考虑使用CFLOGIN其他旨在帮助处理身份验证的安全标签,但我不相信很多人使用它,因为正如 Chris 所展示的那样,维护您的会话非常容易。

于 2012-12-10T12:15:05.617 回答