2011-04-25 33 views
6

Cách triển khai tính năng thời gian chờ của phiên cho ứng dụng asp.net mvc? Tôi muốn người dùng được tự động đăng xuất khi không hoạt động được phát hiện trong một khoảng thời gian.asp.net mvc timeout phiên

Tôi có thể triển khai ActionFilterAttribute và áp dụng cho từng phương pháp nhưng điều đó sẽ không tự động đăng xuất người dùng. Nó sẽ chỉ đăng xuất khi người dùng cố gắng gọi phương thức cho hành động đó.

Cảm ơn.

Trả lời

4

Đó là vì phiên được duy trì ở phía máy chủ. nếu u muốn một trang nhàn rỗi trong trình duyệt của người dùng được đăng xuất tự động, bạn phải viết một số javascript cho nó. bạn có thể sử dụng yêu cầu ajax để kiểm tra xem phiên có hết hạn hay không và tùy thuộc vào kết quả bạn có thể chuyển hướng người dùng đến chỉ mục (đăng nhập hoặc bất kỳ trang nào khác không yêu cầu xác thực)

12

Bạn phải có khả năng quản lý điều này từ web.config:

<system.web> 
    <sessionState timeout="x"/> 
    ... 
</system.web> 

Tôi không có chuyên gia MVC, nhưng thay đổi trong hành vi này được triển khai trên ASP.NET không phải là điều tôi mong đợi.

Điều này cũng có thể được định cấu hình bằng ứng dụng quản lý IIS; không chắc chắn bạn đang sử dụng phiên bản IIS nào, nhưng this Technet article describes điều gì sẽ dễ dàng theo dõi ngay cả trong các phiên bản cũ hơn (trước phiên bản IIS7). Lưu ý rằng đằng sau hậu trường phương pháp này vẫn quản lý các thiết lập trong tệp web.config, vì vậy nếu điều này được kiểm soát phiên bản, tôi sẽ không khuyên bạn nên thay đổi nó theo cách này.