2010-02-03 3 views
0

J'ai une action de contrôleur que j'appelle via Ajax dans lequel je mets un cookie comme celui-ci:les cookies de récupérer HttpResponse

Response.Cookies["Notifications"].Value = "false"; 
Response.Cookies["Notifications"].Expires = DateTime.Now.AddYears(1); 

Dans une autre action du contrôleur je vérifie pour ce cookie comme ceci:

if(Request.Cookies["Notifications"] != null && 
    Request.Cookies["Notifications"].Value =="false") 
//Do something here 

Le problème est que Request.Cookies ["Notifications"] est toujours nul. J'ai vérifié que le cookie est réglé via FireBug. Je suis en train de tester cela via le web construit par Visual Studio sur le serveur web.

+1

Votre serveur démarre-t-il toujours sur le même port? –

+0

Et le domaine de la deuxième page correspond-il au domaine du cookie? –

+0

Le domaine apparaît comme "localhost" et oui c'est sur le même domaine, mais pas le serveur ne démarre pas toujours sur le même port. Cependant chaque demande est sur le même port quand ils sont faits. – Micah

Répondre

1

le problème était avec le fait que je mettais aussi ceci:

Response.Cookies["Notifications"].Secure = true; 

Et bien sûr, le cookie n'est pas envoyé parce que je ne suis pas en Https.

0

Lorsque FireBug voit le cookie renvoyé dans la requête? Vous pouvez également jeter un oeil à la demande brute pour voir si elle est réellement là

+0

C'est un bon point. J'ai vérifié et je ne vois pas les cookies renvoyés avec la demande. Qu'est-ce qui causerait ça? – Micah

0

Juste une idée/un conseil ... Vous pouvez tirer Fiddler pour renifler le trafic http réel et voir comment et si les cookies sont transférés dans le http têtes