Существует проблема с вашим текущим подходом к настройке Повара ответа ie.
Используя Response.Cookies
после установки заголовка с помощью Set-Cookie
вы фактически создаете новый пустой повар ie называется "TestCook ie". Вместо этого вы хотите включить срок действия в существующий заголовок Set-Cookie
.
При тестировании кода это содержимое заголовка ответа:
<%
Function FormatCookieDateTime(interval, value, tz)
Dim dt: dt = DateAdd(interval, Date(), value)
Dim tm: tm = Time()
Dim result: result = WeekDayName(WeekDay(dt), True) & ", " & _
Right("00" & Day(dt), 2) & "-" & _
MonthName(Month(dt), True) & "-" & _
Year(dt) & " " & _
Right("00" & Hour(Time()), 2) & ":" & _
Right("00" & Minute(Time()), 2) & ":" & _
Right("00" & Second(Time()), 2) & " " & tz
FormatCookieDateTime = result
End Function
Response.AddHeader "Set-Cookie", "TestCookie=This is a Test; path=/; SameSite=None; Secure; expires=" & FormatCookieDateTime("d", 1, "GMT")
%>
Встроенная функция, упрощающая настройку срока действия с использованием правильного формата.
Помните Secure
для безопасных соединений
Поскольку вы устанавливаете два файла cookie (один с помощью AddHeader()
и один с помощью Response.Cookie
) , возможно, неясно, но первый повар ie с установленным Secure
будет игнорироваться chrome, если соединение не использует HTTPS. Фактически, если вы посмотрите на запрос в Chrome Dev Tools, вы должны увидеть предупреждающий символ рядом с заголовком Set-Cookie
, который говорит (при наведении курсора) что-то вроде;
Этот set-cook ie имел атрибут "Безопасный", но не был получен по безопасному соединению.