Можно ли установить печенье во время перенаправления в ASP.NET?
-
27-10-2019 - |
Вопрос
Я использую 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.