从付款网关发回的帖子中丢失会话

时间:2019-06-03 15:59:11

标签: .net session iis session-cookies application-pool

我有一个.NET Web应用程序,当用户在付款网关上付款后,我似乎在回发会话时丢失了会话。
1.用户登录门户 2.根据门户中的交易,将某一点定向到支付网关门户 3.致电第三方支付网关时,我们会传递回叫网址,并在其中显示付款状态以及一些详细信息 4.在跟踪中运行它时,我看到在上面的步骤3中,付款网关将用户登录我的应用程序时生成的ASP.NET_SessionId cookie返回给我。 5.此时,当我尝试检索会话详细信息时,它们丢失了。结果,我将用户带回登录页面,而不是确认付款状态,

我相信,当从支付网关进行回发时,不会在我的IIS中检索到该会话。我检查了AppPool回收超时(设置为默认值1740),该超时将回收会话。但是,这在1740分钟的时间范围内发生了多次。我的默认空闲超时为20分钟。确实发生这种情况时,用户闲置时间不会超过20分钟

这是间歇性的,一天中任何给定时间可能很少有用户发生。 可能是什么原因造成的?如何在IIS中跟踪会话以查看其是否真的过期了?

1 个答案:

答案 0 :(得分:0)

我实际上正面临着类似的事情。

我还没有解决它,但是这里我需要检查一些事情。

确保您将付款网关返回的网址是相同的http / https机制。如果您的会话Cookie仅是安全的,而您又返回不安全,则会话将丢失。

我正在努力,因为即使会话仍应处于活动状态,我唯一能说回来的方法是将会话ID附加到不太安全的网址上。

然后在session_start调用之前添加到我的代码中

if (isset($_POST['sessionname'])) {
     session_id($_POST['sessionname']);
}

session_start();