2008-11-14 37 views
13

Tôi đang sử dụng ASP.NET Preview 5 (sẽ nâng cấp sớm lên bản Beta) với LINQ2SQL gần đây launched tiny webapp.ASP.NET MVC Caching khác nhau theo xác thực

Tôi rất tự hào về công việc của mình cho đến khi Silverlight.net giới thiệu nó trên trang đầu tiên và nó bắt đầu nhận được số lượng khách truy cập khiêm tốn hơn.

Vì lý do nào đó, đôi khi người dùng nhận được "Chỉ định không hợp lệ" do LINQ2SQL đưa ra - điều này là do người dùng chưa được xác thực được xử lý như người dùng "Khách" và Trình điều khiển đang tải thông tin về người dùng "Khách" cho từng người dùng đánh.

Trong trang đầu tiên, có "Chào mừng [USERNAME]" ở trên cùng có thể được lưu trữ dễ dàng bằng cách sử dụng Donut Caching.

Tuy nhiên, ở giữa, có khối "Dudlers.com" chỉ nên hiển thị cho người dùng chưa được xác thực và khối "Giới thiệu về bạn" khác chỉ được hiển thị cho người dùng được xác thực. Những khối này quá phức tạp để được lưu trữ bằng Donut Caching; chúng quá khác nhau, nó sẽ rất lộn xộn.

Tôi muốn lưu bộ nhớ cache đầu tiên bằng cách tùy thuộc vào trạng thái xác thực của người dùng. Vì vậy, người dùng chưa được xác thực (không cần phải nói, phần lớn) sẽ nhận được trang "Khách" được lưu trong bộ nhớ cache và những người dùng được xác thực khác được hiển thị một trang không được lưu trong bộ nhớ cache mới.

Có tùy chọn chỉ định bộ nhớ đệm thay đổi theo xác thực không? một cái gì đó như: [OutputCache (VaryBy = Xác thực)]

Hoặc có một giải pháp khác không phải là MVP MVC? (có lẽ điều chỉnh MS SQL)

Tôi hy vọng câu hỏi của tôi là rõ ràng. Tôi đang chạy Windows 2003 và MS SQL 2005 Express trên cùng một máy chủ chuyên dụng.

Cảm ơn bạn!

+0

Bạn đã quản lý để lưu bộ nhớ đệm lên và chạy chưa? –

Trả lời

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