2010-08-04 32 views
5

Trong tải trang, nếu bạn thực hiện Response.Cookies.Add (..., ngay lập tức trong dòng tiếp theo, bạn có thể truy cập cookie đó qua Request.Cookies (...Tại sao Cookie có sẵn trong Yêu cầu ngay sau khi cài đặt bằng Phản hồi?

Tôi biết rằng dưới trang bìa, cookie được thêm vào Request.Cookies bởi .net, nhưng yêu cầu ban đầu không bao giờ có cookie đó.

Nếu những gì tôi nói là đúng, tại sao theo cách này? Không phải cookie có sẵn trong yêu cầu sau đây? Không nên truy cập ngay vào Request.Cookies (... be null?

Trả lời

6

Bạn nói đúng, ASP.NET làm điều đó đằng sau hậu trường:

Sau khi bạn thêm một cookie bằng cách sử dụng bộ sưu tập HttpResponse.Cookies, cookie có sẵn ngay trong bộ sưu tập HttpRequest.Cookies, thậm chí nếu đáp ứng chưa được gửi đến khách hàng.

- HttpRequest.Cookies page trên MSDN

Tại sao nó như vậy? Tại một dự đoán, đó là bởi vì đó là cách các nhà phát triển mong đợi nó hoạt động.

+0

Như một lưu ý phụ, đây là một khiếu nại hơi phổ biến về PHP ... rằng việc sử dụng 'setcookie' không thêm cookie đã nói vào' $ _COOKIE' toàn cầu. – Powerlord

+1

Thực ra điều này đã khiến tôi phát điên. Tôi cần hết hạn cookie và thêm cookie mới nhưng hành vi này có nghĩa là tôi đã hết hạn không chỉ cookie cũ mà còn là cookie mới. Và tôi không nghĩ đó là một nhận xét công bằng để đề nghị các nhà phát triển mong đợi nó hoạt động theo cách đó. Tôi là một nhà phát triển và tôi cố gắng tránh các tác dụng phụ khi tôi viết mã. Nhưng có, liên kết đến tài liệu là vô giá, cảm ơn bạn. –

Các vấn đề liên quan