Чтобы подготовиться к предстоящим изменениям в SameSite в Chrome 80, я обновил мой. NET Framework API с 4.6.2
до 4.7.2
.
Я создал простую конечную точку теста, которая просто устанавливает повара ie с помощью SameSite=None
:
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
Однако, это не работает при публикации в веб-приложении Azure, настроенном как 4.7 в качестве стека времени выполнения. Веб-приложение возвращает заголовок cook ie без SameSite:
Set-Cookie: foo=bar; path=/; secure; HttpOnly
Если я установлю его на Strict
или Lax
, оно будет работать так же, как и в Azure.
Это проблема с Azure? Есть ли что-то, что нужно настроить в веб-приложении, чтобы это работало, или, возможно, мне нужно настроить cook ie по-другому?