2010-08-04 11 views
5

In pageload, se si esegue Response.Cookies.Add (..., immediatamente nella riga successiva, è possibile accedere a tale cookie tramite Request.Cookies (...Perché il cookie è disponibile nella richiesta subito dopo aver impostato l'utilizzo della risposta?

So che sotto le copertine, il cookie viene aggiunto a Request.Cookies per .net, ma la richiesta originale non ha mai avuto quel cookie

Se quello che sto dicendo è corretto, perché è così? Non dovrebbe essere disponibile il cookie nella richiesta seguente? l'accesso immediato a Request.Cookies (... non dovrebbe essere nulla

risposta

6

Hai ragione, ASP.NET fa fare che dietro le quinte:?

Dopo aver aggiunto un cookie utilizzando la raccolta HttpResponse.Cookies, il cookie è immediatamente disponibile nella collezione HttpRequest.Cookies, anche se la risposta non è stato inviato al il cliente.

- HttpRequest.Cookies page su MSDN

Perché è così? A occhio e croce, è perché è così che gli sviluppatori si aspettano che funzioni.

+0

Come nota a margine, si tratta di una lamentela un po 'comune su PHP ... che l'uso di 'setcookie' non aggiunge detto cookie al global $ _COOKIE'. – Powerlord

+1

In realtà questo mi sta facendo impazzire. Avevo bisogno di scadere un cookie e aggiungere un nuovo cookie ma questo comportamento significava che stavo scadendo non solo il vecchio cookie ma anche quello nuovo. E no, non penso che sia un commento giusto per suggerire agli sviluppatori che si aspettano che funzioni in questo modo. Sono uno sviluppatore e cerco di evitare effetti collaterali quando scrivo codice. Ma sì, il link alla documentazione è stato inestimabile, grazie. –

Problemi correlati