Session Coldfusion 10:传入url时jessionid不工作
我们正在从ColdFusion 8迁移到10。我们的应用程序也有用.NET编写的功能,但是会话仅在ColdFusion中维护 ColdFusion 8中用于.NET和CF集成的当前体系结构:Session Coldfusion 10:传入url时jessionid不工作,session,coldfusion,jsessionid,coldfusion-10,Session,Coldfusion,Jsessionid,Coldfusion 10,我们正在从ColdFusion 8迁移到10。我们的应用程序也有用.NET编写的功能,但是会话仅在ColdFusion中维护 ColdFusion 8中用于.NET和CF集成的当前体系结构: 会话是在用户登录应用程序时设置的(在CF中)。(我们正在使用J2EE会话。) 当用户单击.NET链接时,Jsessionid、CFID和CFTOKEN通过url传递到.NET页面。在.net代码中,执行以下步骤来检查会话: 2a。调用一个公共函数,该函数将使用url中的jsessionid执行ColdFus
Jsessionid、CFID
和CFTOKEN
通过url传递到.NET页面。在.net代码中,执行以下步骤来检查会话:
2a。调用一个公共函数,该函数将使用url中的jsessionid
执行ColdFusion文件请求(chkSession.cfm)
2b。chkSession.cfm将返回会话。UID如果可用,否则将返回-1<如果url中的jsessionid
有效,则code>Session.UID将可用
2c。如果返回有效的UID,将加载NET页。如果返回-1,用户将被重定向到登录页面cfide
,cftoken
,jsessionid
来重新创建ColdFusion会话
我想听听您的建议,让我们的.NET功能在ColdFusion 10中工作的最佳方法是什么。有没有更好的方法从.NET检查ColdFusion会话?
我能想到的一个选择是使用数据库。我期待着一个能够快速实现且健壮的解决方案。我认为有效的方法是更改.Net客户端代码,将JSSessionID作为其请求中的cookie值发送出去。这样,您所拥有的功能应该可以再次使用 值得注意的是,在URL中公开会话ID可能会使您暴露于某些安全漏洞,因此这可能是您希望在将来避免的事情 我也使用了您提到的数据库方法。如果您这样做,请让CF代码使用GUID作为标识符和创建记录的时间戳插入记录。在.Net端,查找GUID并仅在时间戳来自不到X秒前的情况下接受请求,因此您不会创建将对您进行长时间身份验证的令牌。X需要是您认为客户端执行从CF到.Net页面的重定向所需的最大时间,因此2可能足够了。
您将要删除已使用的令牌,并安排一项任务来删除“未使用的”令牌。谢谢。我目前正在处理cookie选项。我会很快回复我的调查结果。如果这不起作用,那么我将尝试DB选项。如果你还没有,我建议使用fiddler2.com上的Fiddler来调试你的cookie代码。您可以使用它来跟踪浏览器如何显示cookies,如果您告诉您的.Net代码使用Fiddler作为代理,那么您就可以看到它发送的内容,这在调试HTTP请求时是非常宝贵的。cookie逻辑工作得非常好!我们在请求中将JSESSIONID设置为cookie值,并且能够在.NET中获取CF会话的详细信息。谢谢你的支持!干杯,洛西,洛西。我在这里参加聚会迟到了,但我只是想检查你是如何在请求中传递cookie的,以及这是从.NET应用程序还是CF应用程序发起的,或者是从.NET应用程序还是CF应用程序发起的。