Истечение срока действия файлов cookie VBScript

#cookies #vbscript #asp-classic

#файлы cookie #vbscript #asp-классический

Вопрос:

Я работаю над фрагментом старого кода, который я унаследовал. В верхней части файла index.asp находится скрипт VB, который используется для установки файла COOKIE во время входа в систему. Глядя на код, кажется, что срок действия файла cookie истекает в Date() (который, как я предполагал, был в тот же день). Однако, когда я смотрю на файл cookie, который я создал сегодня, срок его действия истекает 7.10.2041. Моя цель — истечь через 7 дней. Заранее спасибо.

 <%@ LANGUAGE=VBScript %>
<% Option Explicit %>
<%
  Response.Buffer=true
  On Error Resume Next
%>

<%
Dim cookieECP
Dim fldIAccept
cookieECP=Request.Cookies("ACIntra")
fldIAccept=Request.Form("fldIAccept")
if cookieECP="ON" then
  Server.Transfer("/default.asp")
elseif fldIAccept="Y" then
  Response.Cookies("ACIntra")="ON"
  Response.Cookies("ACIntra").Expires = Date()
  Server.Transfer("/default.asp")
end if
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  

Ответ №1:

Вы также можете использовать dateAdd для большего контроля.

Response.Cookies("ACIntra").Expires = DateAdd("d",7,date())

Принимает три параметра — тип добавляемого интервала («d» = дни), количество этих интервалов (отрицательные вычитания вместо добавления) и базовый объект даты / времени, к которому вы добавляете.

Вы можете использовать date() или now() любой из них; date получает текущую дату сервера, now также получает текущую дату сервера и временную метку.

Ответ №2:

Date() — это текущая дата в ASP. Возможно, ваш файл cookie обновляется где-то еще на сайте? Чтобы истечь через 7 дней, инструкция будет:

 Response.Cookies("ACIntra").Expires = Now()   7
  

Я бы посоветовал вам очистить все файлы cookie в вашем браузере и настроить ваш браузер так, чтобы он запрашивал вас, когда устанавливается новый файл cookie. В IE есть эта опция, и она позволяет вам посмотреть, какой файл cookie / значение сервер хочет установить в вашем браузере.
Это позволяет выполнять отладку.

Другой вариант — на вашем сервере установлена неправильная дата, но это немного более надуманно.

HTH Erik