2012-12-09 184 views
2

在登录时,coldfusion服务器分配给我一个CFIDCFTOKEN。稍后使用这些CFIDCFTOKEN如何检查我的会话是否仍然存在。检查会话是否仍然存在

换句话说,我想,将采取CFIDCFTOKEN,并告诉我们,如果涉及到这些CFIDCFTOKEN会话仍然存在或不是一个函数。

感谢

+0

你能否指定你想实现的更高目标?这可能会给你更多的答案。 –

+0

从移动应用程序我想发送到服务器的电话,以检查我的会话是否仍然存在或不。如果不是,我会将用户发送到登录屏幕。 –

+0

只需在用户登录时将自定义会话变量'Session.HasUserLogedIn'设置为'true'。每当一个请求从移动应用程序进入服务器时,您需要检查该变量是否具有“true”的值,如果是,服务器用户如果没有,则会话过期;将她重定向到登录屏幕。我在这里错过了什么吗? –

回答

7

实现,这将是设置一个标志在会话最简单的方法,当你的用户登录。

例如

<cfset session.loggedin = true /> 

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

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

是的,这是最简单的方法。但我期待着会有一个合适的方式。例如coldfusion功能等。 –

+0

我会接受你的答案,除非有人发布正确的方式。谢谢 –

+3

真的,这是正确的方法。你可以做'StructKeyExists(session,'anyvaluethatshouldexist')',但是这与Chris在 –

1

没有什么克里斯的答案是错误的,通常是检查会话时的标准规范。

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

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

CFID:一个顺序客户标识符

CFTOKEN:的随机数的客户端安全令牌这些cookies唯一识别客户端到 ColdFusion,它还维护变量的副本,作为会话和客户端作用域的一部分 。

正如你可以阅读here,本纳德尔做了一些玩弄CFIDCFTOKEN其中CF使用的相同CFIDCFTOKEN饼干它已经过期后,创建新的会话。

至于你“的ColdFusion正确”的方式,你可以考虑使用CFLOGINother security tags这意味着可以协助处理身份验证,但我不相信很多人使用它,因为维护您的会话克里斯很容易证明。

相关问题