Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome SameSite=none和不安全的http Cookie无法在Chrome上工作_Google Chrome_Asp.net Core_Cookies_Asp.net Identity_Samesite - Fatal编程技术网

Google chrome SameSite=none和不安全的http Cookie无法在Chrome上工作

Google chrome SameSite=none和不安全的http Cookie无法在Chrome上工作,google-chrome,asp.net-core,cookies,asp.net-identity,samesite,Google Chrome,Asp.net Core,Cookies,Asp.net Identity,Samesite,我正在本地运行我的aspnet核心应用程序http://localhost:5002 出于某些原因,我不想使用https。它使用OpenIdConnect中间件进行身份验证,并生成临时cookie,如下所示: 因此,由于缺少secure标志,Chrome会阻止这些cookie。另一方面,这个请求是HTTP(不安全的),不可能将cookie标记为安全的。我看到的唯一方法是避免使用HTTP并切换到HTTPS,这对于本地开发来说不是一个好的选择。我仍然可以使用HTTP+OpenIdConnect中间

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


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

也许这可以提供一些启示-

从文章中

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

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


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

OpenIdConnect
有一个名为
bool RequireHttpsMetadata
的属性,您是否尝试禁用它?您以前是否在https上运行应用程序?由于
HSTS
有时该站点被缓存为https,需要从缓存中清除。是的,我以前在https上运行过该应用程序。现在我尝试了
options.RequireHttpsMetadata=false
并清除了chrome中的hsts缓存,但没有成功。我还发现了类似的问题,他们不得不重新安装VisualStudio来解决这个问题。这太令人失望了。实际上,该链接与SameSite=none无关,因此解决方案无法帮助
注意:这也意味着跨站点或第三方cookie仅限于安全/HTTPS连接。
这意味着在Chrome>=80上,我们应该忘记HTTP。谢谢你的信息。