2010-01-13 21 views
6

Vì vậy, tôi chưa bao giờ phải sử dụng cookie trước đây nhưng bây giờ tôi đang tạo một Giỏ hàng mà họ có thể tiếp tục quay trở lại nhưng tôi muốn nó họ đã thêm.Kiểm tra/đọc/ghi cookie trong .NET, hãy giúp tôi hiểu

Những gì tôi đang tự hỏi:

Làm thế nào để kiểm tra xem một cookie tồn tại và sau đó tạo ra hoặc cập nhật nó, đó là cách tốt nhất để nghĩ về việc sử dụng một cookie?

Làm cách nào để lưu trữ dữ liệu, cụ thể là tôi muốn lưu trữ danh sách các ID như "5,6,7,8", tôi chỉ nên sử dụng một chuỗi cho điều này hoặc có cách nhanh hơn/tốt hơn đọc/phân tích cú pháp/viết một cái gì đó như thế? Tôi có nghĩa là tôi cho rằng tôi sẽ tiếp tục thêm new_value + ',' vào cuối, là có một phụ thêm cho các biến cookie?

Cookie có một số định danh duy nhất mà tôi sẽ sử dụng để đảm bảo tôi không viết bản sao hay gì đó không?

Lưu ý: Thật dễ dàng để tra cứu 'LÀM THẾ NÀO' như để xem cú pháp nhưng tôi thực sự cố gắng nắm bắt 'CÁCH TỐT NHẤT' hoặc lý tưởng nhất, cách sử dụng hoặc cách tất cả các lập trình viên của bạn tìm thấy là cách hiệu quả nhất để sử dụng chúng trong loại kịch bản này.

Trả lời

1

Câu trả lời giành giải thưởng cho this similar question cho thấy rằng bạn chỉ lưu trữ ID người dùng trong cookie. Phần còn lại đi vào cơ sở dữ liệu.

Nếu bạn có thể xem xét các cách tiếp cận khác ngoài cookie, nhiều người thích sử dụng phiên sử dụng cookie. Đối với một điều, bạn không luôn luôn có rất nhiều phòng trong một cookie.

Lưu trữ giỏ hàng trong cookie có nghĩa là bạn sẽ không có hồ sơ về những gì mọi người đang mua nhưng không mua.

OTOH, sử dụng cookie đang sử dụng dung lượng bộ nhớ của người mua sắm và bảo quản của riêng bạn. Điều đó có thể đáng kể theo thời gian và rất nhiều người mua sắm.

+0

tuyệt vời nhất, cảm ơn – BigOmega

0

Tôi đã giải quyết vấn đề này trong quá khứ bằng cách tạo lớp học để quản lý cookie (ví dụ: CookieManager) với phương pháp tĩnh Tôi đã chuyển đối tượng HttpRequest đến.

Tôi đã cố gắng giải quyết một vấn đề rất giống nhau, vì vậy tôi đã tạo một cookie Count và sau đó một cookie lưu trữ thông tin tôi muốn lưu (trong trường hợp của bạn là số ID). Tôi chỉ muốn lưu 5 mục cuối cùng mà người dùng đã xem, vì vậy tôi sẽ quản lý mục này trong lớp CookieManager của mình, xóa bỏ cookie cũ nhất và xếp hàng mới nhất. Cookie Count theo dõi số lượng cookie tôi có. Rõ ràng, đây không phải là công nghệ cao hay an toàn, nhưng đối với dự án này hoàn toàn không cần thiết. Bất cứ điều gì bạn muốn được mạnh mẽ nên được lưu trên một cơ sở dữ liệu, hoặc ở nơi khác phía máy chủ.

0

Tôi muốn giải thích thêm lý do tại sao bạn chỉ lưu trữ một guid hướng ánh xạ tới userid trong cookie. Có hai lý do chính:

  • Hiệu suất. Chậm vì nó dường như kéo dữ liệu từ cơ sở dữ liệu, bạn phải nhớ rằng dữ liệu cookie không phải là miễn phí. Nó phải được tải lên từ trình duyệt của người dùng đến máy chủ web của bạn và thậm chí kết nối băng thông rộng tốc độ cao cũng có xu hướng có tốc độ tải lên chậm hơn nhiều. Ngược lại, cơ sở dữ liệu của bạn có thể có một liên kết gigabit (đôi khi thậm chí còn nhanh hơn) trực tiếp đến máy chủ web. Vì vậy, những gì bạn thực sự muốn trong cookie của bạn cho hiệu suất tốt nhất là một guid mà ánh xạ trực tiếp đến khóa chính của bảng cơ sở dữ liệu của bạn.
  • Bảo mật. Dữ liệu trong cookie được lưu trữ trong một tệp văn bản thuần túy trên máy tính của người dùng.Bạn không bao giờ biết người dùng sẽ truy cập trang web của bạn từ đâu; nó có thể là một nơi rất công cộng không thích hợp để giữ dữ liệu đó.

Vì vậy, có bất kỳ dữ liệu bạn có thể sử dụng cookie trực tiếp không? Khi nó xảy ra, có. Cookie có thuộc tính tốt đẹp để gắn bó với một máy và trình duyệt cụ thể. Ngày nay, nhiều người sẽ truy cập web từ nhiều nơi. Có lẽ một máy tính làm việc, máy tính gia đình, điện thoại thông minh, netbook ... tất cả đều có kích thước màn hình khác nhau và các đặc điểm khác. Vì vậy, những gì bạn có thể làm với một cookie là lưu trữ thông tin cụ thể cho sự kết hợp của người dùng + vị trí.

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