Файлы cookie asp.net mvc не отправляются обратно - PullRequest
0 голосов
/ 16 апреля 2010

Мое приложение на mysubdomain.mydomain.com должно установить cookie, который содержит некоторую информацию о сеансе пользователя.

Они входят в систему на странице https. Мы аутентифицируем их и устанавливаем некоторую информацию о сеансе в куки.

Мы делаем это в вспомогательной библиотеке, которая принимает в контексте контроллера

contextBase.Response.Cookies[CookiePayload.CookieName].Value = encryptedTicket;                       
contextBase.Response.Cookies[CookiePayload.CookieName].Expires = cookieExpires;
contextBase.Response.Cookies[CookiePayload.CookieName].Domain= ConfigHelper.CookieDomain;
contextBase.Response.Cookies[CookiePayload.CookieName].HttpOnly=true;

Мы делаем быстрое перенаправление в контроллере (на страницу без https):

this.ControllerContext.HttpContext.Response.Redirect(redirectTo, false);
return null;

Файл cookie появляется в ответе (согласно сетевой вкладке firebug).

Но ни fireforx, ни, т. Е. Не отправлять куки при последующих загрузках.

Мы устанавливаем домен cookie для mydomain.com, даже если сайт mysubdomain.mydomain.com. Пропуск команды перенаправления не имеет никакого эффекта, равно как и изменение значения cookie.

Я сбит с толку. Спасибо за любые предложения.

1 Ответ

4 голосов
/ 16 апреля 2010

Попробуйте явно установить флаг Secure в значение false, если этот файл cookie необходимо отправить более http:

var cookie = new HttpCookie(CookiePayload.CookieName, encryptedTicket)
{
    HttpOnly = true,
    Domain = ConfigHelper.CookieDomain,
    Secure = false,
    Expires = cookieExpires
};
Response.SetCookie(cookie);
...