Session Coldfusion 10:传入url时jessionid不工作

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

我们正在从ColdFusion 8迁移到10。我们的应用程序也有用.NET编写的功能,但是会话仅在ColdFusion中维护

ColdFusion 8中用于.NET和CF集成的当前体系结构:
  • 会话是在用户登录应用程序时设置的(在CF中)。(我们正在使用J2EE会话。)
  • 当用户单击.NET链接时,
    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,用户将被重定向到登录页面

  • CF 10中的问题: 在CF 10中,我们总是得到-1。我了解到,作为CF 10中安全增强的一部分,我们将无法通过在url中传递
    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应用程序发起的。