我们在 Web 应用程序的支付过程中遇到了一个奇怪的问题,导致会话数据丢失。
在这个过程中,在我们的结帐页面用户被重定向到支付提供商的页面后,只要他/她在那里完成,就会被重定向回我们的网站(到我们指定的网址)。最后一个重定向是通过浏览器对支付提供商的 html 代码的评估完成的,该代码基本上由一个发布到我们网站的表单和几行在页面加载时发布该表单的 javascript 代码组成。此时浏览器发出 post 请求,但没有设置“ASP.NET_SessionId”cookie,该 cookie 存在于先前对完全相同的域(我们的应用程序的域)发出的请求中。更奇怪的是,它设置了我们使用的另一个名为“AcceptCookie”的 cookie。它只是简单地选择删除“ASP.NET_SessionId”cookie。
为了说明这种情况,我截取了一些屏幕截图。(在这些屏幕截图中,橙色和绿色矩形包含完全相同的值。)
将用户带回我们网站的发布请求(在上一步中使用 javascript 制作)
最后我们认为在旧版本的浏览器上不会出现这个问题。在 Firefox 52 上它就像一个魅力,但在 Firefox 71 上会发生上述问题。
有任何想法吗?
注意:这是一个 ASP.NET MVC 应用程序,其 targetFramework="4.5.2"
祝你今天过得愉快。