Можно ли установить печенье во время перенаправления в ASP.NET?

StackOverflow https://stackoverflow.com/questions/5366635

Вопрос

Я использую asp.net. Я либо добавляю, либо устанавливаю cookie (в зависимости от HttpRequest содержит файл cookie с указанным ключом) и сразу после этого вызов Response.Redirect. Анкет Cookie не установлен. Это правильное поведение? Есть ли что -то взаимоисключающее в установке файла cookie во время ответа HTTP с кодом состояния 302?

Вот источник:

        if (context.HttpContext.Request.Browser.Cookies)
        {
            var cookies = context.HttpContext.Request.Cookies;
            var stateCookie = new HttpCookie(SR.session, clientState.SessionId.ToString());
            if (cookies.AllKeys.Contains(SR.session))
            {
                context.HttpContext.Response.Cookies.Set(stateCookie);
            }
            else
            {
                context.HttpContext.Response.Cookies.Add(stateCookie);
            }
        }

Вот заголовки ответов

  • X-aspnetmvc-версия-2.0
  • Соединение - закрыть
  • Контроль кэша - частное
  • Контент -тип - текст/HTML
  • Дата - Солнце, 20 марта 2011 г. 03:48:04
  • Расположение - http: // localhost: 3599/home/перенаправлен
  • Сервер - ASP.NET Development Server/9.0.0.0
  • X-ASPNET-версия-2.0.50727
Это было полезно?

Решение

После того, как немного гуглить кажется, что да, могут возникнуть проблемы с установлением файла cookie в ответе перенаправления, так как это может быть проигнорировано несколькими браузерами. (Это может иметь смысл, так как ответ действительно говорит клиенту игнорировать ресурс и получить какой -то другой ресурс).

Это уже обсуждалось здесь: Отправка печенья в браузере во время 302 перенаправления

Таким образом, я бы изменил архитектуру таким образом, чтобы страница была перенаправлена, чтобы установить файл cookie.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top