Готовить ie без удаления из Chrome 84.0.4147.105 (Официальная сборка) (64-бит) в Asp.net - PullRequest
1 голос
/ 03 августа 2020

У меня проблема с удалением / обновлением Cook ie со стороны asp. net C#. Он отлично работает на более старой версии, но не на windows chrome 84.0.4147.105

Код для удаления cook ie

 HttpCookie Cookie = HttpContext.Current.Request.Cookies[cookieName];
            if (Cookie != null)
            {
                Cookie.Expires = DateTime.Now.AddDays(-2);
                HttpContext.Current.Response.Cookies.Add(Cookie);
            }

Я попытался добавить cook ie .secure - true, так как это. net версия фреймворка 4.5 У меня нет опции samesite, доступной в framework или в web.config

Пробовал правило перезаписи IIS и его работа. Cook ie и безопасен, и тот же сайт Нет, но хром не удаляет Cook ie.

<rule name="SessionCookieAddNoneHeader">
          <match serverVariable="RESPONSE_Set-Cookie" pattern="(.*ACUsername.*)" />
          <!-- Use this regex if your OS/framework/app adds SameSite=Lax automatically to the end of the cookie -->
          <!-- <match serverVariable="RESPONSE_Set-Cookie" pattern="((.*)(ASP.NET_SessionId)(=.*))(?=SameSite)" /> -->
          <action type="Rewrite" value="{R:1}; SameSite=None" />
        </rule>

Пожалуйста, помогите, если кто-то столкнулся с той же проблемой с более новой chrome версией

Спасибо

1 Ответ

0 голосов
/ 20 августа 2020

Мы также столкнулись с той же проблемой и заметили, что она удаляет старую версию, поэтому, чтобы удалить повар ie из последней версии, мы сделали следующее -

HttpCookie Cookie = HttpContext.Current.Request.Cookies[cookieName];
if (Cookie != null)
{
    Cookie.Secure = true;
    Cookie.Expires = DateTime.Now.AddDays(-1);
    HttpContext.Current.Response.Cookies.Add(Cookie);
}

И при добавлении повара ie , мы добавили

HttpContext.Current.Response.Cookies["cookie"].SameSite = SameSiteMode.None;

Следующие обратно-совместимые поведения удалены с Chrome 80:

Запретить установку атрибута SameSite по умолчанию на «None»: Атрибут SameSite теперь по умолчанию используется Lax, что означает, что ваши файлы cookie доступны другим сайтам только из навигации верхнего уровня. Как изначально реализовано в Chrome, атрибут SameSite по умолчанию имеет значение None, что, по сути, было статус-кво Интернета. Файлы cookie имеют допустимые варианты межсайтового использования, но если владелец сайта ранее не хотел разрешать межсайтовое использование ie, у него не было возможности заявить о таком намерении или обеспечить его соблюдение. Значение «None» больше не разрешено в небезопасных контекстах: Chrome теперь требует, чтобы, когда для атрибута SameSite установлено значение None, атрибут Secure также должен был присутствовать. Атрибут Secure требует, чтобы прикрепленный Cook ie мог передаваться только по защищенному протоколу, например HTTPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...