2010-08-04 12 views
5

W pageload, jeśli zrobisz Response.Cookies.Add (..., od razu w następnym wierszu, możesz uzyskać dostęp do tego cookie poprzez Request.Cookies (...Dlaczego plik cookie jest dostępny w Żądaniu natychmiast po ustawieniu za pomocą odpowiedzi?

Wiem, że pod okładkami, plik cookie jest dodawana do Request.Cookies przez .net, ale pierwotne żądanie nigdy nie miało tego pliku cookie

Jeśli to, co mówię, jest poprawne, dlaczego tak jest? Czy plik cookie nie powinien być dostępny w poniższej prośbie? Gdyby nie natychmiastowy dostęp do Request.Cookies (... być null

Odpowiedz

6

masz rację, ASP.NET robi, że za kulisami:

Po dodaniu cookie za pomocą HttpResponse.Cookies zebraniu Cookie jest natychmiast dostępny w HttpRequest.Cookies kolekcji, nawet jeśli odpowiedź nie została wysłana do klienta.

- HttpRequest.Cookies page na MSDN

Dlaczego tak? Przypuszczam, że to dlatego deweloperzy oczekują, że zadziała.

+0

Na marginesie, jest to dość powszechna skarga dotycząca PHP ... że używanie 'setcookie' nie dodaje wspomnianego cookie do globalnego' $ _COOKIE'. – Powerlord

+1

Właściwie to doprowadza mnie do szału. Musiałem wygasić plik cookie i dodać nowy plik cookie, ale to zachowanie oznaczało, że wygasłem nie tylko stary plik cookie, ale także nowy. I nie, nie sądzę, że to uczciwy komentarz do sugestii, że deweloperzy oczekują, że będzie działał w ten sposób. Jestem programistą i staram się unikać efektów ubocznych, gdy piszę kod. Ale tak, link do dokumentacji był nieoceniony, dziękuję. –

Powiązane problemy