Coldfusion中是否有办法有选择地启用用户会话?我不需要跟踪访问我网站的所有用户,只需要跟踪已登录的用户。有没有办法在登录过程之后激活用户会话?
(我觉得答案是否定的,但我想我会问,因为你们中的一些人可能有更多的用户会话经验。)
答案 0 :(得分:3)
如果启用会话,您将为每个用户获取会话。但是,没有什么说你需要使用会话变量。只会创建最基本的数据(例如会话令牌)。
答案 1 :(得分:1)
您可以在/ member中添加Application.cfc,然后在那里启用会话管理。
然后对于需要会话的页面,将under / memeber。
答案 2 :(得分:1)
一种解决方法是快速丢弃未登录的人的会话。如果您的应用程序中的会话很重,这不会减少创建新会话的开销,但它确实可以节省内存。我在一些大型应用程序中这样做,以防止蜘蛛等会话。您可以使用此变体来快速过期未登录的访问者。
靠近Application.cfc的顶部:
<!--- save memory by expiring non-user sessions quickly --->
<cfif structKeyExists(cookie, "CFID")>
<!--- 7 days for normal users --->
<cfset THIS.sessionTimeOut = CreateTimeSpan(7, 0, 0, 0) />
<cfelse>
<!--- 30 sec short session for agents like bots that do not accept cookies --->
<cfset THIS.sessionTimeOut = CreateTimeSpan(0, 0, 0, 30) />
</cfif>
我不记得是谁从中得到了这个想法,所以不能正确地归功于它。
答案 3 :(得分:0)
为什么您不想跟踪未登录的用户?只是不需要?节省记忆?等
就像Al所说,默认情况下会议很轻松。您可以将业务逻辑设置为仅在登录时跟踪会话中的首选项或购物车等内容 - 如果未登录,则只是未定义或空字符串。