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

Session 从一个application.cfm访问Coldfusion会话变量到另一个application.cfm,session,coldfusion,application.cfm,Session,Coldfusion,Application.cfm,我有一个登录函数,可以通过XMLWebService对远程数据库进行授权。成功登录后,我为登录用户设置了一系列会话变量,这些变量围绕站点成员专有内容等进行跟踪。这些都可以正常工作 我们正在建立一个商店,希望能够访问会话变量,用于会员定价、预填表单等。目前,只有在成员登录后,该存储的链接才可用。我在链接中包含url标记,如下所示: https://mysite.com/store/index.cfm?<cfoutput>#session.urltoken#</cfoutput&g

我有一个登录函数,可以通过XMLWebService对远程数据库进行授权。成功登录后,我为登录用户设置了一系列会话变量,这些变量围绕站点成员专有内容等进行跟踪。这些都可以正常工作

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

https://mysite.com/store/index.cfm?<cfoutput>#session.urltoken#</cfoutput>
CFdumping存储页面上的会话显示与登录页面相同的cfid、cftoken和jsessionid,因此我认为会话得到了正确的维护-但是我的会话变量没有显示在转储中,如果我尝试引用它们,我会得到会话中未定义的错误


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

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

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

因此,在application.cfm中,确保已设置名称
如果您有任何application.cfc可以在构造函数中使用this.name进行设置。

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

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

因此,在application.cfm中,确保已设置名称
如果您有任何application.cfc可以在构造函数中使用此.name进行设置。

您可以使用服务器作用域

<cfset server.sharedSession[session.urlToken]=session>
要复制到服务器会话中,请执行以下操作:

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

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

您可以使用服务器作用域

<cfset server.sharedSession[session.urlToken]=session>
要复制到服务器会话中,请执行以下操作:

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

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

我认为这是一个非常糟糕的主意,您试图通过在服务器变量范围中添加令牌来复制会话变量的用途。什么会清理它们,让它们超时等等。我会坚持使用会话变量。我同意:如果你想在两个不同的应用程序上同步会话,你可能会想通过HTTP使用一个简单的服务调用-这将避免服务器范围的问题。然而,我不认为这里发生了什么;我想是同一个应用程序看到我对你回答的回应谢谢比利和戴尔的帮助!我真的很感激!仔细检查后,我得到了以下信息:1.mysite.com的一个根文件夹;各种文件夹内,即移动,商店,图像等2部分的网站使用FarcryCMS。根文件夹中确实有application.cfc、farcryConstructor.cfm和proxyApplication.cfc。存储文件夹中有application.cfm。构造函数设置的名称与application.cfm中的名称不同。等一下,我快速编辑一下。。。再次感谢!!我认为这是一个非常糟糕的主意,您试图通过在服务器变量范围中添加令牌来复制会话变量的用途。什么会清理它们,让它们超时等等。我会坚持使用会话变量。我同意:如果你想在两个不同的应用程序上同步会话,你可能会想通过HTTP使用一个简单的服务调用-这将避免服务器范围的问题。然而,我不认为这里发生了什么;我想是同一个应用程序看到我对你回答的回应谢谢比利和戴尔的帮助!我真的很感激!仔细检查后,我得到了以下信息:1.mysite.com的一个根文件夹;各种文件夹内,即移动,商店,图像等2部分的网站使用FarcryCMS。根文件夹中确实有application.cfc、farcryConstructor.cfm和proxyApplication.cfc。存储文件夹中有application.cfm。构造函数设置的名称与application.cfm中的名称不同。等一下,我快速编辑一下。。。再次感谢!!重读这个问题之后,我们似乎都不明白发生了什么。没有迹象表明它们是独立的应用程序:在我看来,他引用的两个页面都在同一个应用程序中,因此可能没有两个应用程序,而是,会话在与SSL的上下文切换中丢失。可能有一个名称不同,或者没有启用会话变量。我阅读的是一个文件夹、一个应用程序、一个应用程序。cfm,web服务器中的两个不同站点-但是阅读标题,可能不是这样的情况谢谢Billy和Dale的帮助!我真的很感激!仔细检查后,我得到的是:

mysite.com的一个根文件夹;里面的各种文件夹为我不完整的解释道歉。显然有两个应用程序。我在商店的application.cfm中匹配了cfapplication标记中的名称,以匹配Farcry构造函数中cfset中的名称。我所有的会话变量现在都在cfdump中输出!谢谢大家帮助我-再次抱歉,我本来没有说得更清楚!:-重读这个问题之后,我们似乎都不明白发生了什么。没有迹象表明它们是独立的应用程序:在我看来,他引用的两个页面都在同一个应用程序中,因此可能没有两个应用程序,而是,会话在与SSL的上下文切换中丢失。可能有一个名称不同,或者没有启用会话变量。我阅读的是一个文件夹、一个应用程序、一个应用程序。cfm,web服务器中的两个不同站点-但是阅读标题,可能不是这样的情况谢谢Billy和Dale的帮助!我真的很感激!仔细检查后,我得到的是:mysite.com的一个根文件夹;里面的各种文件夹为我不完整的解释道歉。显然有两个应用程序。我在商店的application.cfm中匹配了cfapplication标记中的名称,以匹配Farcry构造函数中cfset中的名称。我所有的会话变量现在都在cfdump中输出!谢谢大家帮助我-再次抱歉,我本来没有说得更清楚!:-您是否已确认完整的URL是相同的,即两边的mysite.com或www.mysite.com?否则,您的代码应该可以工作。您是否在同一个应用程序中?换句话说,application.applicationname在这两种情况下是否相同?嗨,比利,谢谢,URL是相同的-它们都是同一站点的一部分,即通过将设置会话变量并提供指向的链接。艾尔,我正在检查应用程序设置。。。谢谢我不明白如何在两个应用程序之间维护会话ID。每个应用程序都应该设置自己的cookie。是否有可能正在清除会话值,但保留cfid和cftoken值?正确的登录您可以发布您的标签吗?您确认了完整的URL是相同的吗?例如,mysite.com或www.mysite.com在两边?否则,您的代码应该可以工作。您是否在同一个应用程序中?换句话说,application.applicationname在这两种情况下是否相同?嗨,比利,谢谢,URL是相同的-它们都是同一站点的一部分,即通过将设置会话变量并提供指向的链接。艾尔,我正在检查应用程序设置。。。谢谢我不明白如何在两个应用程序之间维护会话ID。每个应用程序都应该设置自己的cookie。是否有可能正在清除会话值,但保留cfid和cftoken值?正确的登出请你贴上你的标签好吗?