2010-04-16 7 views
0

Mon application sur mysubdomain.mydomain.com doit définir un cookie qui contient des informations de session utilisateur.asp.net mvc cookies ne sont pas renvoyés

Ils se connectent sur une page https. Nous les authentifions et définissons des informations de session dans un cookie.

Nous le faisons dans une bibliothèque d'assistance qui prend dans le contexte du contrôleur

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; 

Nous faisons une redirection rapide dans le contrôleur (à une page non https):

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

Le cookie apparaît dans la réponse (selon l'onglet net de firebug).

Mais ni fireforx ni ie envoyer le cookie sur les obtentions suivantes.

Nous définissons le domaine de cookies sur mydomain.com même si le site est mysubdomain.mydomain.com. Ignorer la commande de redirection n'a aucun effet, ni ne modifie la valeur du cookie.

Je suis déconcerté. Merci pour vos suggestions

Répondre

4

Essayez définissant explicitement le drapeau Secure false si ce cookie doit être envoyé sur http:

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

qui semble avoir fait. Il semble que ASP l'a configuré pour sécuriser par défaut car le contexte était une requête https. Merci! –

Questions connexes