浏览器不会在付款网关向我们网站的发布请求中设置ASP.NET_SessionId cookie

问题描述 投票:3回答:1

我们在Web应用程序的付款过程中遇到了一个奇怪的问题,该问题导致会话数据丢失。

在此过程中,一旦我们的结帐页面用户被重定向到付款提供商的页面,并在其完成操作后立即被重定向回到我们的网站(我们指定的网址)。最后的重定向是通过浏览器对付款提供商的html代码的评估来完成的,该html代码基本上由发布到我们网站的表单和几行在页面加载时发布的javascript代码组成。此时,浏览器发出了发布请求,但未设置“ ASP.NET_SessionId” cookie,该cookie出现在对完全相同的域(我们的应用程序的域)的先前请求中。更奇怪的是,它设置了另一个我们使用的名为“ AcceptCookie”的cookie。它只是选择删除“ ASP.NET_SessionId” cookie。

为了说明这种情况,我拍摄了一些屏幕截图。 (在这些屏幕截图中,橙色和绿色矩形包含完全相同的值。)

  1. 这是当用户按下“签出”按钮时向我们的应用程序发出的请求。请求完成后,用户将被重定向到付款提供商的页面。

check-out request

  1. 这是付款提供商在此完成后所提供的最终页面。如您所见,这只是一个简单的表单,它会在页面加载时自动发布到我们的域中。

payment provider's final response

  1. 但是此发布请求不包含“ ASP.NET_SessionId” cookie,它会导致获取新的会话ID并丢失先前的会话数据。再次,仅缺少“ ASP.NET_SessionId”,而没有另一个名为“ AcceptCookie”。

post request that brings the user back to our site (made with javascript in the previous step)

最后,我们发现在较旧版本的浏览器中不会发生此问题。在Firefox 52上,它像一个超级按钮一样工作,但在Firefox 71上,发生了上述问题。

有什么想法吗?

注意:这是一个带有targetFramework =“ 4.5.2”的ASP.NET MVC应用程序>

祝您有美好的一天。

我们在网络应用程序的付款过程中遇到了一个奇怪的问题,该问题导致会话数据丢失。在此过程中,我们的结帐页面用户被重定向到付款...

asp.net session cookies id
1个回答
5
投票

我们知道了。

© www.soinside.com 2019 - 2024. All rights reserved.