有没有办法将 SameSite 属性应用于 .AspNetCore.Correlation cookie?

Is there a way to apply SameSite attribute to .AspNetCore.Correlation cookie?

根据最近Chrome 80的变化,现在需要在需要跨站点发送的cookie上指定SameSite=None

我发现我的 Asp.Net 核心站点托管在不同站点的框架上时存在问题。 WS-Federation 身份验证当前已损坏,因为 .AspNetCore.Correlation cookie:

中缺少 SameSite=None 属性
Set-Cookie: .AspNetCore.Correlation.WsFederation.qG-dtdsIcVBHSRW4SpPpqpMYMrueIrLfWLvElKrbyXg=N; expires=Fri, 17 Jan 2020 09:17:08 GMT; path=/signin-wsfed; secure; httponly

我找到了一种使用 Cookie Policy Middleware:

添加 SameSite=None 到 cookie 的方法
app.UseCookiePolicy(new CookiePolicyOptions()
{
    MinimumSameSitePolicy = SameSiteMode.None
});

这工作正常,但这会导致使用此属性创建所有 cookie,我想避免这种情况。是否有可以仅应用于关联 cookie 的侵入性较小的解决方案?

定义身份验证方案时,您可以更改关联 cookie 的设置。 例如:

.AddWsFederation(o =>
{
    o.CorrelationCookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Lax;
})

来自 OP 的注释:

Beware that you need the .NET Core November 2019 Update installed on your server for this to work (else the SameSite attribute isn't issued). See this article.