从一个application.cfm访问Coldfusion会话变量到另一个

时间:2012-02-10 04:55:17

标签: session coldfusion application.cfm

我有一个登录功能,通过xml webservice对远程数据库进行授权。成功登录后,我为登录用户设置了一堆会话变量,这些变量跟随他们在网站周围(仅限会员内容等)。一切正常。

我们正在建立一个商店,并希望能够访问会话变量,成员定价,预填表格等。目前,只有在会员登录后才能使用商店链接。我在链接中包含了网址令牌,如下所示:

https://mysite.com/store/index.cfm?<cfoutput>#session.urltoken#</cfoutput>

在商店页面上CFdumping会话显示与登录页面相同的cfid,cftoken和jsessionid,所以我认为会话正在被正确维护 - 但我的会话变量都没有显示在转储中,如果我尝试引用它们我得到“会话中未定义”错误。

无论我是通过http&gt;从登录到商店,都会发生这种情况。 http,https&gt; https或其他组合。它都在同一台服务器上。我很感激你解决这个问题的任何帮助,或者如果有人对如何实现我们的目标有更好的建议,我也会非常感激!同样,我想要做的就是让商店在他们第一次到达商店主页时识别登录成员。非常感谢!

2 个答案:

答案 0 :(得分:0)

两个应用程序都需要具有相同的名称

如果它们具有不同的名称,则所有应用程序会话变量都特定于该应用程序。

所以在application.cfm中确保设置了名称 如果您有任何可能在构造函数中使用this.name设置的application.cfc。

答案 1 :(得分:-1)

您可以使用服务器范围。

<cfset server.sharedSession[session.urlToken]=session>

要复制到服务器会话:

<cfloop collection='#server.sharedSession['#url.urlToken#']#" index="i">
    <cfset session[i]=servers.sharedSession['#url.urlToken#'][i]>
</cfloop>

您可以只复制整个会话,但循环允许您保留不在源会话中的值。