2009-02-28 24 views
7

Tôi đang viết một ứng dụng asp.net đã lưu trữ một đối tượng trong bộ nhớ cache. Khi trang tải lần đầu tiên, nó sẽ kiểm tra bộ nhớ cache cho đối tượng, nếu nó ở đó, nó sẽ sử dụng đối tượng. nếu đối tượng không tồn tại, nó sẽ tái xây dựng và lưu trữ nó trong bộ nhớ cache. vì nhiều người dùng có thể sử dụng ứng dụng này cùng một lúc, tôi đã cố lưu trữ đối tượng trong bộ nhớ cache bằng khóa bộ nhớ cache là SessionID. Vâng, tôi nhận thấy rằng khi trang đăng lại, sessionID thay đổi, vì vậy tôi sẽ cần phải sử dụng một khóa duy nhất khác nhau. Bất kỳ đề xuất? Tôi đã suy nghĩ về việc sử dụng userID của người đăng nhập, nhưng đó không phải là duy nhất, vì bạn có thể đăng nhập với cùng một id nhiều lần.asp.net sessionID thay đổi trên postbacks?

Trả lời

0

Id phiên không được thay đổi khi đăng lại. Nó được sử dụng bởi asp.net để làm một điều tương tự. Bạn có thể cung cấp thêm thông tin về tình huống này không? loại dữ liệu nào, tại sao/khi nào bạn đang cố gắng "cache"

Cập nhật 1: Về việc thay đổi từng bài đăng, bạn đã tắt cookie chưa? bạn đang sử dụng phiên bản asp.net nào?

10

Tôi nghĩ rằng tôi chỉ tìm thấy câu trả lời của tôi từ MSDN (đây là một sự thay đổi để 2.0,3.5):

"Khi sử dụng trạng thái phiên dựa trên cookie, ASP.NET không phân bổ lưu trữ dữ liệu phiên cho đến khi phiên Kết quả là, một ID phiên mới được tạo cho mỗi yêu cầu trang cho đến khi đối tượng phiên được truy cập.Nếu ứng dụng của bạn yêu cầu ID phiên tĩnh cho toàn bộ phiên, bạn có thể triển khai phương thức Session_Start trong Global của ứng dụng. asax và lưu trữ dữ liệu trong đối tượng Session để sửa ID phiên, hoặc bạn có thể sử dụng mã trong một phần khác của ứng dụng để lưu trữ dữ liệu một cách rõ ràng trong đối tượng Session. "

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx

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