【发布时间】:2020-05-01 01:13:49
【问题描述】:
为了准备 Chrome 80 中即将对 SameSite 进行的更改,我已将 .NET Framework API 从 4.6.2 升级到 4.7.2。
我创建了一个简单的测试端点,它只是使用SameSite=None 设置一个 cookie:
public class TestController : ApiController
{
public IHttpActionResult Get()
{
var cookie = new HttpCookie("foo", "bar")
{
HttpOnly = true,
Secure = true,
SameSite = SameSiteMode.None
};
HttpContext.Current.Response.SetCookie(cookie);
return Ok();
}
}
这在本地按预期工作,并返回以下标头:
set-cookie: foo=bar; path=/; secure; HttpOnly; SameSite=None
但是,当发布到配置为 4.7 作为运行时堆栈的 Azure Web 应用程序时,这不起作用。 Web 应用返回不带 SameSite 的 cookie 标头:
Set-Cookie: foo=bar; path=/; secure; HttpOnly
如果我将其设置为 Strict 或 Lax,它在 Azure 中也可以正常工作。
这是 Azure 的问题吗?是否需要在网络应用程序上配置任何内容才能使其正常工作,或者我必须以不同的方式设置 cookie?
【问题讨论】:
标签: asp.net azure cookies azure-web-app-service