Я использовал ASP MVC с. NET 4.7.2, чтобы установить Cook ie на стороне сервера со следующим кодом:
ClientCookie = new HttpCookie("SuperCookie");
ClientCookie.Value = dbNewCustomerCookie.CustomerCookieID.ToString(); // new inserted DB value
ClientCookie.Expires = DateTime.Now.AddYears(2);
ClientCookie.HttpOnly = true;
ClientCookie.Secure = true;
ClientCookie.Shareable = true;
ClientCookie.SameSite = SameSiteMode.None;
Response.SetCookie(ClientCookie);
Response.Flush();
На локальном хосте это работает нормально, а для SameSite установлено значение None, после отправки этого параметра на сервер флаг SameSite сбрасывается после каждого запроса. И локальный хост, и серверная версия работают по HTTPS. Проверено. NET версия на сервере, удалили повар ie для воссоздания, попробовали с другими настройками web.config на сервере, также попробовали с модулем перезаписи URL, но ничего не сработало.
Could this be a code issue or server/host issue ? We are using Amazon (private servers with access to IIS) to host our websites.
UPDATE : running the site on server localhost keeps returning SameSite as empty, while development machine returns always SameSite set as None. Both machines have .NET 4.7.2 installed, are running with the same web.config over IIS 7.
UPDATE 2 : if I set ClientCookie.SameSite = SameSiteMode.Lax then it will also work for server requests; but won't work to set the mode to SameSiteMode.None. With Lax mode the cookie is not created for cross-site requests, which is required because I call the website from an iframe.
UPDATE 3 : I think the reason of this is that the server is not updated with the latest functionality that support the samesite as none : https://docs.microsoft.com/en-us/aspnet/samesite/kbs-samesite, так как компания не будет обновлять сервер (внутренняя политика), я попробую установить повар ie со стороны клиента