Session.CFID/CFTOKEN VS Client.CFID/CFTOKEN

标签 session coldfusion

例如,我们的应用程序使用客户端变量管理来唯一识别网站访问者,并最终将其存储为电子商务订单的 ID。

我们的客户订单表将“10000032:98517605:77134665”(cfid+cftoken) 等字符串保存为其唯一 ID。

现在我们需要删除客户端变量,这样我们的代码中就不再有“CLIENT.cfid”了。

我想到的第一件事就是简单地将其替换为“SESSION.cfid”和“SESSION.cftoken”。但最大的疑问是:

生成的 ID 和 token 相对于现有的 ID 和 token 仍然是唯一的吗? 进行这样的更改是否可能会导致重新生成“10000032:98517605:77134665”?

如何制作唯一的访客 ID,同时考虑现有的访客 ID?

最佳答案

我会设置一个新的 session 值onSessionStart,您可以保证它是唯一的。因此,在Application.cfc的onSessionStart方法中,您可以设置如下内容:

<cfset Session.CustomerID = CreateUUID() />

这样,当 session 开始时,一个 UUID(保证唯一)将被放入 session 范围中。然后您可以将其用于您需要的任何用途。如果需要持久化,您也可以将其写入 cookie(因为 session 不像客户端变量那样长期持久化)。

关于Session.CFID/CFTOKEN VS Client.CFID/CFTOKEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329638/

相关文章:

apache - .htaccess 中的通配符

php - 根据 session ID 将 MySQL 表记录传递给变量

php - 我应该使用数据库 session 还是 native PHP 文件 session ?

session - 在 clojure-ring 中清除 session (注销用户)

c# - asp.net:在哪里放置代码以将没有 session 的用户重定向到主页?

coldfusion - 数组/列表上的 cfloop 不允许引用以前的值

sql - 如何使用 LIKE 和 <cfqueryparam> 在整数表中搜索值?

arrays - 获取第二维数组长度

Coldfusion 将 onRequestEnd() 与 Application.cfm 文件结合使用

asp.net - 如何在 HttpWebRequest 期间维护 session 值?