自Chrome 79发行以来,我似乎无法弄清这个怪异的事物。
在您注册的网站上。注册后,您需要付款。付款发生在另一个网站上,Buckaroo是付款提供商。付款后,您将再次通过POST请求重定向到我们的网站。这是有趣的东西开始的地方,一开始您已登录,因此您应该已经登录了一段时间,因为您已经短暂离开了。但是似乎无法识别该会话,因此您将被重定向到登录页面。但是,如果我从更早的步骤中获得相同的重定向URL,它将按预期工作。
所以看起来好像与从其他域重定向有关?
我已经搜索了代码,在调试时我发现似乎找不到该会话。这部分代码的最后更改是一年多以前的,自那时以来一直完美。这是我没有向此问题添加代码示例的方式。我搜索了Chrome 79的发行说明,但仍然没有头绪。
下一步有什么线索/想法?
-编辑-
我发现sessionID实际上发生了变化。
在我的网站上,选择一种付款方式(确认后,您将被重定向):HttpContext.Session.SessionID:“ qibxyymxhvev231n01ndlkyx”
从付款提供商处退回:HttpContext.Session.SessionID:“ mwkfptaod0hpyuedvaimtqd0”
再次刷新站点:HttpContext.Session.SessionID:“ qibxyymxhvev231n01ndlkyx”
遇到相同的问题。原来它与Microsoft有关。
在WebConfig中添加CookieSameSite =“ NONE”可能会解决您的问题。
我在配置中添加了它,它解决了问题。
<system.webServer>
<rewrite>
<outboundRules>
<clear />
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=None" />
<conditions> </conditions>
</rule>
<preConditions>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>