2010-04-16 3 views
0

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

Они заходят на страницу https. Мы проверяем подлинность и устанавливаем некоторые сведения о сеансе в файле 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; 

:

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

появляется Куки в ответе (согласно вкладке netbug netbug).

Но ни fireforx, ни, т. Е. Не отправляйте cookie при последующих попаданиях.

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

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

ответ

4

Попробуйте явно устанавливая Secure флаг ложным, если это нужно куки для отправки через http:

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

Это, кажется, сделал это. Кажется, что ASP устанавливал его для защиты по умолчанию, потому что контекст был запросом https. Благодаря! –

Смежные вопросы