asp.net-mvc - 由于 Chrome 79 session "lost"重定向后

标签 asp.net-mvc google-chrome session buckaroo

自从 Chrome 79 发布以来,我似乎无法弄清楚这个奇怪的事情。

在您注册的网站上。注册后需要付费。付款发生在另一个网站上,Buckaroo 是付款提供商。付款后,您将再次被重定向到我们的网站(通过 POST 请求)。这是有趣的事情开始的地方,起初您已登录,因此您应该仍然登录,因为您离开了很短的时间。但是 session 似乎无法识别,因此您将被重定向到登录页面。但是,如果我从前一步采用相同的重定向 URL,它会按预期工作。

所以看起来它与从其他域或其他域重定向有关吗?

我在代码中搜索过,在调试时我发现似乎找不到 session 。这部分代码的最后一次更改是一年多前的,从那以后一直运行得很完美。这是我没有添加到这个问题的代码示例的方式。我已经搜索了 Chrome 79 的发行说明,但仍然没有任何线索。

任何线索/想法下一步在哪里看?

- 编辑 -

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

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

从支付提供商返回:
HttpContext.Session.SessionID: "mwkfptaod0hpyuedvaimtqd0"

再次刷新网站:
HttpContext.Session.SessionID: "qibxyymxhvev231n01ndlkyx"

最佳答案

面临同样的问题。
原来它与微软有关。

在 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>

关于asp.net-mvc - 由于 Chrome 79 session "lost"重定向后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59826498/

相关文章:

google-chrome - ExtJs 4.1 和 Chrome 25 的布局损坏

javascript - 如何在 Javascript 事件中检查 Chrome 中仅存在于 DOM 中的元素

node.js - req.session 未定义?

ASP.Net vs MVC vs WebAPI 和 UseTaskFriendlySynchronizationContext

asp.net-mvc - ASP.NET MVC : Dynamic page title

javascript - 条件不显眼的验证模式

html - 背景 .png 未在 Chrome 和 Firefox 中显示

javascript - 从 Javascript 分配 Session 变量

php - 将 session $data 转换为数组?

c# - 如何修复 web.config 中的重复条目错误