Coldfusion 在没有会话作用域的情况下使用哪个持久作用域

Coldfusion 在没有会话作用域的情况下使用哪个持久作用域,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我需要在持久作用域中维护一个变量,直到用户会话处于活动状态。问题是应用程序不允许会话管理,并且不可能更改它。 我只想在登录会话中向用户显示一次消息。除了会话和使用DB(如果可能的话)之外,我还有什么选择。这是一个很长的注释。它不会回答问题,但可能会给提问者一些想法 我编写了一个ColdFusion应用程序,它的session management设置为false。此应用程序在桌面应用程序(而不是web浏览器)中显示html内容。安全性由桌面应用程序处理。如果您可以登录到该应用程序,并且是适当类型

我需要在持久作用域中维护一个变量,直到用户会话处于活动状态。问题是应用程序不允许会话管理,并且不可能更改它。
我只想在登录会话中向用户显示一次消息。除了会话和使用DB(如果可能的话)之外,我还有什么选择。

这是一个很长的注释。它不会回答问题,但可能会给提问者一些想法

我编写了一个ColdFusion应用程序,它的session management设置为false。此应用程序在桌面应用程序(而不是web浏览器)中显示html内容。安全性由桌面应用程序处理。如果您可以登录到该应用程序,并且是适当类型的用户,则可以访问html内容

在ColdFusion方面,必须处理有人发现url并尝试使用web浏览器访问站点的可能性。数据就是这样。桌面应用程序将UUID放入数据库,并将其作为url变量发送。ColdFusion检查UUID是否存在并且是否足够新。如果该检查失败,用户将被发送到“为您的尝试感到羞耻”页面。这是在Application.cfc的onRequestStart方法中完成的


其他相关变量从与UUID相同的数据库记录发送到ColdFusion,但它们也可以是url变量。onRequestStart方法将这些变量复制到其他ColdFusion页面中使用的请求范围。

您可以使用不使用
expires
属性的
cfcookie
设置会话cookie。这将导致cookie在用户关闭浏览器时过期。cookie将指示消息是否已显示

<cfif structkeyexists(cookie, "message_displayed") eq false>
     <cfcookie name="message_displayed" value="true"/>
     <p>Your Message Here</p>
</cfif>

你的留言在这里


请解释不允许会话管理与“仅在登录会话中向用户显示一次消息”之间的明显矛盾。如果您能够登录用户,则必须启用会话管理。如果没有,你就错了。我不确定,但我认为你可能误解了会议的范围。用户无需登录即可进行会话。通常情况下,用户在登录前后都会保持相同的会话*显然,在有些情况下,在有人登录之前故意破坏会话是明智的,这不是我经常看到的。哇,有人真的在限制你的选择。您应该告诉告诉您不要使用会话范围或数据库表为您建造房子的人,但他们不能使用钉子,也不能使用螺钉。当然,您可以显示消息,然后在他们看到消息后,在他们的客户端范围中存储一些内容,表示他们看到了消息,如果他们看到了,请不要向他们显示消息请再说一遍。