2011-09-04 34 views
25

Xin vui lòng bất cứ ai đề nghị tôi làm thế nào phiên làm việc thực sự làm việc trong asp.net? Tôi nhầm lẫn trong một phần phiên và muốn biết ngắn gọn về nó, vì vậy hãy hướng dẫn tôiPhiên làm việc như thế nào trong asp.net?

+2

Hãy thử đọc bài viết CodeProject này http://www.codeproject.com/Articles/32545/Exploring-Session-in-ASP-Net – kfuglsang

Trả lời

45

ASP.NET sử dụng cookie để theo dõi người dùng. Khi bạn cố gắng viết một cái gì đó cho phiên cho lần đầu tiên một cookie được gửi cho khách hàng, một cái gì đó như ASP.NET_SessionId. Cookie này được khách hàng gửi về các yêu cầu tiếp theo. Nhờ cookie này, máy chủ có thể xác định ứng dụng khách và ghi/đọc dữ liệu phiên liên quan. Điều quan trọng cần lưu ý là cookie này không liên tục (sẽ không tồn tại khi khởi động lại trình duyệt) và được phát ra với cờ HttpOnly có nghĩa là các tập lệnh máy khách không thể truy cập nó.

Ngoài cookie, bạn cũng có thể định cấu hình ASP.NET để sử dụng các trường ẩn hoặc nối id phiên vào chuỗi truy vấn trên mỗi yêu cầu. Vì vậy, ý tưởng cơ bản đằng sau phiên là dữ liệu thực tế được lưu trữ ở đâu đó trên máy chủ và máy khách gửi một số ID trên mỗi yêu cầu để máy chủ có thể biết nơi tìm dữ liệu của nó.

Theo mặc định có 3 nơi dữ liệu phiên thực tế có thể được lưu trữ:

  • In-Proc: phiên được lưu trữ vào bộ nhớ của ứng dụng (nhanh nhất nhưng nếu bạn có nhiều máy chủ trong một máy chủ trang trại này sẽ không hoạt động)
  • Out-of-Proc: dữ liệu được lưu trữ vào một máy chủ riêng biệt đã cài đặt dịch vụ nhà nước (dữ liệu được lưu trữ trong bộ nhớ của một máy riêng biệt có nghĩa là nhiều máy chủ web có thể làm việc một trang trại)
  • SqlServer: dữ liệu được lưu trữ trong SQL Server (đó là chậm nhất nhưng đáng tin cậy nhất là dữ liệu phiên được lưu trữ trong cơ sở dữ liệu SQL Server và có thể phục vụ nếu máy chủ Session gặp sự cố với Out-Of-Proc)
  • Triển khai tùy chỉnh: nhờ khả năng mở rộng của ASP.NET, bạn có thể viết nhà cung cấp và lưu trữ phiên của riêng mình dữ liệu ở bất cứ đâu bạn thích.

Đây là bài viết hay về MSDN khám phá số ASP.NET Session State.

4

Session: [lưu trữ trên Server side]

1.If bạn tạo các phương tiện phiên, các cửa hàng máy chủ dữ liệu phiên của bạn và tạo ra một SessionID. [Dữ liệu phiên với SessionID được lưu trữ trong Nhà cung cấp của Nhà nước trong Máy chủ]

2.Sau đó máy chủ Trả lại SessionID cho trình duyệt của khách hàng.

3.Sau đó, bạn có thể lưu trữ SessionID trả về trong Cookie.

4.Upcoming Yêu cầu tiếp theo được đính kèm với SessionID có thể truy cập Dữ liệu máy chủ.

Lưu ý: Phiên chỉ dành cho trình duyệt hiện tại Phiên và người dùng cụ thể.

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