Coldfusion 检查会话是否仍然存在

Coldfusion 检查会话是否仍然存在,coldfusion,coldfusion-9,coldfusion-8,coldfusion-10,Coldfusion,Coldfusion 9,Coldfusion 8,Coldfusion 10,登录时,coldfusion服务器为我分配一个CFID和一个CFTOKEN。稍后使用那些CFID和CFTOKEN我如何检查会话是否仍然存在 换句话说,我想要一个函数,它将接受CFID和CFTOKEN,并将告诉我与那些CFID和CFTOKEN相关的会话是否仍然存在 谢谢实现这一点的最简单方法是在用户登录时在会话中设置一个标志 比如说 <cfset session.loggedin = true /> 然后,当您想检查用户是否仍有有效会话时,您可以执行以下操作 <cfpara

登录时,coldfusion服务器为我分配一个
CFID
和一个
CFTOKEN
。稍后使用那些
CFID
CFTOKEN
我如何检查会话是否仍然存在

换句话说,我想要一个函数,它将接受
CFID
CFTOKEN
,并将告诉我与那些
CFID
CFTOKEN
相关的会话是否仍然存在


谢谢

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

比如说

<cfset session.loggedin = true />

然后,当您想检查用户是否仍有有效会话时,您可以执行以下操作

<cfparam name="session.loggedin" default="false" />
<cfif NOT session.loggedin>
  <!--- do something here --->
</cfif>

克里斯的回答没有问题,通常是检查会话时的标准标准答案

这两个cookie旨在将浏览器与会话“链接”,而不是实际维护会话(事实上,我认为这些cookie将在30年后到期(?),如果您使用
J2EE会话管理
,如果我没有弄错的话,甚至会被忽略)。从:

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

CFID:顺序客户端标识符

CFToken:随机数客户端安全令牌这些cookie唯一地标识要访问的客户端 ColdFusion,它还维护变量的副本作为 会话和客户端作用域

如您所知,Ben Nadel使用了
CFID
CFTOKEN
进行了一些游戏,其中CF使用相同的
CFID
CFTOKEN
cookies在其过期后创建新会话


至于您的“ColdFusion-property”方式,您可以研究如何使用和帮助处理身份验证,但我不相信有很多人会使用它,因为正如Chris所演示的那样,维护您的会话非常容易。

您可以指定要实现的更高目标吗?这可能会给你更多的答案。我想通过移动应用程序向服务器发送一个电话,检查我的会话是否仍然存在。如果没有,我会将用户发送到登录屏幕。只要用户登录,就可以将自定义会话变量
session.hasUserLogeIn
设置为
true
。每次移动应用程序向服务器发送请求时,您都需要检查该变量是否具有
true
的值,如果是,则检查服务器;如果不是,则检查用户的会话是否过期;将她重定向到登录屏幕。我遗漏了什么吗?@chris blackwell确实在这里为您写了一个函数示例:-)是的,这是最简单的方法。但我也希望有一个合适的方法。例如,一个coldfusion函数等,除非有人以正确的方式发布,否则我会接受你的答案。谢谢这是正确的方法,真的。您可以执行StructKeyExists(会话,'anyvaluethatshouldexist'),但这与Chris在上面所做的相同。我自己会使用strucktkeyexists选项。Chris建议的是正确的检查方法。
CFID
CFTOKEN
都作为cookie存储在客户端。您不能仅仅依靠用户进行身份验证。您应该通过服务器端进行检查。