我在http:// localhost:5002上本地运行我的aspnet核心应用程序,由于某些原因,我不想使用https。它使用OpenIdConnect中间件进行身份验证,并生成临时cookie,如下所示:
因此,Chrome由于缺少secure
标志而阻止了这些Cookie。另一方面,该请求是HTTP(不安全),因此无法标记Cookie secure
。我看到的唯一方法是避免使用HTTP并切换到HTTPS,这对我来说不是本地开发的好选择。我仍然可以使用HTTP
+ OpenIdConnect middleware
+ Crome
,什么是解决方法?
答案 0 :(得分:1)
也许这可能会引起一些启发-LINK。
从文章
Chrome更改了在第一方和第三方上下文中发送Cookie的默认行为。 未指定SameSite属性的Cookie将被视为如同它们指定SameSite = Lax一样对待,也就是说,默认情况下它们将限于第一方或同一站点上下文。 用于第三方或跨站点上下文的Cookie必须指定SameSite = None和Secure。 注意:这也意味着跨站点或第三方Cookie仅限于安全/ HTTPS连接。
自从我猜测以来,您的身份验证服务器是来自另一个域的服务器,它是第三方Cookie,因此它属于新的Chrome(> = v80)策略。
这里的解决方法可能是Chrome版本降级,或者使用没有这些限制的浏览器。