由于Chrome 79会话在重定向后“丢失”

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

自Chrome 79发行以来,我似乎无法弄清这个怪异的事物。

在您注册的网站上。注册后,您需要付款。付款发生在另一个网站上,Buckaroo是付款提供商。付款后,您将再次通过POST请求重定向到我们的网站。这是有趣的东西开始的地方,一开始您已登录,因此您应该已经登录了一段时间,因为您已经短暂离开了。但是似乎无法识别该会话,因此您将被重定向到登录页面。但是,如果我从更早的步骤中获得相同的重定向URL,它将按预期工作。

所以看起来好像与从其他域重定向有关?

我已经搜索了代码,在调试时我发现似乎找不到该会话。这部分代码的最后更改是一年多以前的,自那时以来一直完美。这是我没有向此问题添加代码示例的方式。我搜索了Chrome 79的发行说明,但仍然没有头绪。

下一步有什么线索/想法?

-编辑-

我发现sessionID实际上发生了变化。

在我的网站上,选择一种付款方式(确认后,您将被重定向):HttpContext.Session.SessionID:“ qibxyymxhvev231n01ndlkyx”

从付款提供商处退回:HttpContext.Session.SessionID:“ mwkfptaod0hpyuedvaimtqd0”

再次刷新站点:HttpContext.Session.SessionID:“ qibxyymxhvev231n01ndlkyx”

asp.net-mvc google-chrome session buckaroo
1个回答
0
投票

遇到相同的问题。原来它与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>

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