Làm cách nào tôi có thể đặt trang web ASP.Net hết hạn để nếu người dùng nhấp vào nút gửi, anh/cô ấy sẽ nhận được trang hết hạn lỗi nếu nút quay lại của trình duyệt bị đẩy để cố gắng truy cập quay lại và nhấn gửi lại?hết hạn trang ASP.Net
Trả lời
Trước hết, hãy sử dụng Post-Redirect-Get pattern khi người dùng gửi biểu mẫu. Điều này sẽ khiến chúng không thể sử dụng nút quay lại dễ dàng. Để thực hiện việc này, tất cả những gì bạn thực sự cần làm là phát hành cuộc gọi Response.Redirect()
sau khi bạn xử lý xong biểu mẫu, ngay cả khi nó đến cùng một URL. Thứ hai, bạn có thể xem xét sử dụng một trường id duy nhất trong biểu mẫu được gắn với quá trình gửi, để nếu quá trình gửi hoàn tất, không thể sử dụng lại cùng một id. Sự phù hợp của điều này sẽ phụ thuộc vào những gì bạn đang làm mặc dù.
Sử dụng HttpResponse.Cache để kiểm soát khả năng lưu vào bộ nhớ cache của trang. Điều này cho phép bạn kiểm soát các tùy chọn như sự hết hạn của trang từ bộ nhớ cache và các tiêu đề HTTP Bộ nhớ cache kiểm soát.
Tôi đã xem liên kết bạn cung cấp, nhưng không chắc chắn nơi mã đi, nếu tôi chạy nó từ chức năng Page_Load, tôi vẫn có thể nhấn nút quay lại trình duyệt để quay lại và gửi lại trang. –
Tôi cũng có một trang với vấn đề này. Tôi đã đặt mọi cài đặt bộ nhớ cache mà tôi có thể tìm thấy để ngăn chặn nó, nhưng tôi vẫn có người dùng quản lý để 'quay lại' và gửi lại. Khi tôi thử nó, tôi nhận được một lỗi 'trang hết hạn', nhưng tôi cho rằng một số trình duyệt và/hoặc cài đặt bỏ qua nội dung đó và hiển thị trang từ bộ nhớ cache. Tôi có mã để ngăn chặn đệ trình thứ hai gây ra một thiệt hại, nhưng nó không ngăn chặn sự khó chịu. – Ray
Từ những gì tôi hiểu, có hai phần cho câu hỏi của bạn:
1 - Dừng nút trình duyệt trở lại - nó không hoạt động & tôi-nghĩ rằng chúng ta không bao giờ nên ngừng sử dụng từ cách nhấn trở lại. Vì vậy, có lẽ bạn có thể sử dụng thẻ META hết hạn nội dung để người dùng nhìn thấy một "nội dung hết hạn" trang & có để tải lại để có được những nội dung mới nhất
2 - Dừng nhiều POST - theo định nghĩa, POST không phải là indempotent tức là. nhiều hoạt động POST có thể thực hiện được. Một cơ chế có thể là vô hiệu hóa nút POST/SUBMIT sau khi bài viết đầu tiên đã hoàn thành. Vì vậy, người dùng sẽ không thể làm điều đó lần thứ hai.
HTH.
Tôi không có ý định vô hiệu hóa nút quay lại, tôi chỉ muốn hết hạn trang để khi nhấn nút quay lại, người dùng nhận được thông báo lỗi "trang đã hết hạn". Tôi đã thêm một số javascript để vô hiệu hóa nút gửi trên trang gốc và hoạt động tốt trong Firefox - nút gửi vẫn bị tắt nếu người dùng nhấn nút quay lại để quay lại, nhưng trong IE 7, nếu người dùng nhấn nút quay lại trình duyệt, nút gửi trên trang gốc được bật lại. –
- 1. Cách chuyển hướng đến trang Đăng nhập khi Phiên hết hạn (ASP.NET 3.5 FormsAuthen)
- 2. Với chuyển hướng ASP.NET MVC đến trang đăng nhập khi phiên hết hạn
- 3. META "hết hạn" thẻ
- 4. Buộc tất cả bộ nhớ cache ASP.NET hết hạn
- 5. GXT: Cách mang trang đăng nhập khi hết hạn
- 6. Phiên Django hết hạn?
- 7. Hết giờ hết hạn với SqlBulkCopy
- 8. Phiên PHP hết hạn sớm
- 9. Ngày hết hạn cookie
- 10. Ngày hết hạn JRE
- 11. Hết hạn phiênStorage
- 12. Rails cache hết hạn
- 13. Đặt giới hạn hết hạn để readLine()?
- 14. facebook access token hết hạn
- 15. Trình duyệt ASP.NET hiển thị "trang web đã hết hạn" cho nút quay lại (sau khi đăng lại)
- 16. tìm hiểu lý do tại sao vé xác thực asp.net hết hạn
- 17. Mã xác thực liên tục hết hạn
- 18. FormsAuthenticationTicket hết hạn quá sớm
- 19. Cookie hết hạn với AngularJS?
- 20. Rails CSRF Token's - Chúng hết hạn?
- 21. Cách kiểm tra xem phiên có hết hạn hay không trong asp.net
- 22. Đặt hết hạn bộ nhớ cache?
- 23. Hết hạn tiêu đề trên AppHarbor
- 24. XAP Hết hạn sau nửa ngày?
- 25. Phiên PHP hết hạn quá sớm
- 26. Kiểm soát hết hạn bộ nhớ cache
- 27. Đặt giá hết hạn phiên cookie hết hạn theo chương trình
- 28. GetExpressCheckoutDetails trả về phiên hết hạn (10411 lỗi) trong asp.net (chỉ trên một số máy tính)
- 29. ASP.NET thời gian hết hạn của cookie luôn là 1/1/0001 12:00
- 30. Phiên PHP hết hạn bất ngờ
Điều đó nghe như một đề xuất thực sự tốt nếu chúng tôi bắt đầu ứng dụng của chúng tôi từ đầu, nhưng chúng tôi có một ứng dụng hiện có mà tôi chỉ cần khắc phục nhanh, quá nhiều việc để kiến trúc lại toàn bộ. –
Đây là cả hai đều nói chung khá đơn giản implmentations. Bạn có nghĩa là bạn thực sự không thể thay đổi bất kỳ mã nào? – womp
Chúng tôi có thể thay đổi mã, nhưng tôi đã hy vọng cho một cái gì đó giống như chỉ cần thiết lập một tài sản trong trang để vô hiệu hóa bộ nhớ đệm của trang. –