В консоли Google Chrome я получаю это предупреждение "Повар ie, связанный с межсайтовым ресурсом по адресу" URL ", был установлен без атрибута SameSite
". Он был заблокирован, поскольку Chrome теперь доставляет файлы cookie только с межсайтовыми запросами, если они установлены с SameSite=None
и Secure
. Я проверил то же самое в Приложении> Хранилище> Файлы cookie. Я обнаружил, что этот сайт был «пустым / пустым», и я хочу обновить его до «Нет».
Пробовал некоторые способы, упомянутые другими разработчиками, но ничего не видно чтобы работать на меня.
Реализация 1: обновлен мой web.config с приведенным ниже кодом
<sessionState cookieSameSite="None" />
<httpCookies httpOnlyCookies="true" requireSSL="true" />
// sameSite = "None" не для меня в разделе httpCookies и дает мне сообщение об ошибке атрибут sameSite не допускается
Реализация 2: код файла модифицированного класса, в котором я создаю этот Cook ie
HttpCookie sessionCookie = new HttpCookie("Token");
sessionCookie.Value = sessionToken;
sessionCookie.HttpOnly = true;
sessionCookie.SameSite = SameSiteMode.None;
sessionCookie.Secure = FormsAuthentication.RequireSSL && Request.IsSecureConnection;
sessionCookie.Domain = Request.Url.Host;
Response.Cookies.Add(sessionCookie);
Реализация 3: создан отдельный фильтр MVC Чтобы справиться с этим
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var response = filterContext.RequestContext.HttpContext.Response;
if (response != null)
{
response.AddHeader("Set-Cookie", "HttpOnly;Secure;SameSite=None");
}
base.OnActionExecuting(filterContext);
}
Реализация 4:
<rewrite>
<outboundRules>
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=None" />
<conditions>
</conditions>
</rule>
<preConditions>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
Target. net Framework 4.7.2
Нужно ли что-то делать на моей локальной машине? или сервер или в любом случае, с помощью которого я могу удалить это предупреждение.