2

我有一个登录功能,通过 xml webservice 授权远程数据库。成功登录后,我为在网站上关注他们的登录用户设置了一堆会话变量(仅限会员内容等)。这一切都很好。

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

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

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

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

4

2 回答 2

1

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

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

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

于 2012-02-10T05:08:08.350 回答
-1

您可以使用服务器范围。

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

复制到服务器会话:

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

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

于 2012-02-10T05:23:37.220 回答