SameSite = none和不安全的HTTP Cookie无法在Chrome上运行

时间:2020-09-24 17:46:17

标签: google-chrome asp.net-core cookies asp.net-identity samesite

我在http:// localhost:5002上本地运行我的aspnet核心应用程序,由于某些原因,我不想使用https。它使用OpenIdConnect中间件进行身份验证,并生成临时cookie,如下所示:

enter image description here

因此,Chrome由于缺少secure标志而阻止了这些Cookie。另一方面,该请求是HTTP(不安全),因此无法标记Cookie secure。我看到的唯一方法是避免使用HTTP并切换到HTTPS,这对我来说不是本地开发的好选择。我仍然可以使用HTTP + OpenIdConnect middleware + Crome,什么是解决方法?

1 个答案:

答案 0 :(得分:1)

也许这可能会引起一些启发-LINK

从文章

Chrome更改了在第一方和第三方上下文中发送Cookie的默认行为。 未指定SameSite属性的Cookie将被视为如同它们指定SameSite = Lax一样对待,也就是说,默认情况下它们将限于第一方或同一站点上下文。 用于第三方或跨站点上下文的Cookie必须指定SameSite = None和Secure。 注意:这也意味着跨站点或第三方Cookie仅限于安全/ HTTPS连接。

自从我猜测以来,您的身份验证服务器是来自另一个域的服务器,它是第三方Cookie,因此它属于新的Chrome(> = v80)策略。

这里的解决方法可能是Chrome版本降级,或者使用没有这些限制的浏览器。