解释起来有点棘手,但我会尽力解释问题。首先,它只发生在 Firefox、Chrome 和 Edge 上,按预期工作。
我有一个网络结账表单,其中支付网关字段显示在 iframe 内。 Iframe 确实带有
<form></form>
标签,该标签具有在单击 “提交订单” 时向支付提供商提交信用卡详细信息的后期操作。
单击提交按钮后,支付网关提供商会提交 Iframe,并通过“回调”函数返回结果,该函数是我附加到该 Iframe 的操作控制器。
问题是当我在 Firefox 上提交主“签出”表单时,它将会话中的每个缓存属性重置为 null。在 Chrome/Edge 上一切正常,但 Firefox 具有这种一致的行为。我非常确定 Iframe 回发导致了此问题,但无法找到相同的解决方案。
有什么想法吗?
在 web.config 中添加以下属性解决问题
<system.web>
<sessionState cookieSameSite="None"/>
这样第三方 Iframe 会话就开始工作了。
在进行此更改之前,最好阅读此内容 https://learn.microsoft.com/en-us/aspnet/samesite/system-web-samesite