Cómo puedo configurar una página web ASP.Net para que caduque, de modo que si el usuario hace clic en el botón Enviar, obtendrá un error de página caducada si se presiona el botón Atrás del navegador para intentar ir volver y presionar enviar de nuevo?expirar ASP.Net página
Respuesta
En primer lugar, utilice Post-Redirect-Get pattern cuando el usuario envíe el formulario. Esto evitará que puedan usar el botón Atrás fácilmente. Para hacer esto, todo lo que necesita hacer es emitir una llamada Response.Redirect()
después de que termine de procesar el formulario, incluso si se trata de la misma URL.
En segundo lugar, podría considerar el uso de un campo único de identificación en el formulario vinculado al proceso de envío, de modo que si se completa el envío, no se puede volver a utilizar el mismo ID. La idoneidad de esto dependerá de lo que estés haciendo.
Utilice HttpResponse.Cache para controlar la capacidad de almacenamiento en caché de la página. Esto le da control sobre opciones tales como la caducidad de la página desde la caché y los encabezados HTTP de Cache-Control.
He consultado el enlace que proporcionó, pero no estoy seguro de dónde va el código, si lo ejecuto desde la función Page_Load, aún puedo presionar el botón de retroceso del navegador para volver y volver a enviar la página. –
También tengo una página con este problema. He configurado cada configuración de caché que puedo encontrar para evitarlo, pero todavía tengo usuarios que logran volver y enviar de nuevo. Cuando lo intento, aparece un error de "página expirada", pero supongo que algunos navegadores y/o configuraciones ignoran ese material y muestran la página desde el caché. Tengo un código para evitar que el segundo envío cause un daño, pero no previene la molestia. – Ray
Por lo que entiendo, hay dos partes a su pregunta:
1 - Detener botón el navegador de vuelta - que no funciona & me-piensa que nunca debemos dejar que el usuario presiona la espalda. Por lo tanto, tal vez usted podría utilizar etiqueta META de expirar el contenido para que el usuario vea un "contenido expiró" página & tiene que recargar para obtener el contenido más reciente
2 - parada múltiple POSTAL - por definición, post no es indempotente es decir. múltiples operaciones de POST deberían ser posibles. Un posible mecanismo es desactivar el botón POST/SUBMIT después de que se haya completado la primera publicación. Por lo tanto, el usuario no podrá hacerlo la segunda vez.
HTH.
No tenía intención de desactivar el botón Atrás, solo quiero caducar la página para que cuando se presione el botón Atrás, el usuario obtenga un error de "página caducada". He agregado algunos javascript para desactivar el botón de enviar en la página original y eso funciona bien en Firefox: el botón de enviar permanece desactivado si el usuario presiona el botón Atrás para volver, pero en IE 7, si el usuario presiona el botón Atrás del navegador, el botón de enviar en la página original se vuelve a habilitar. –
- 1. Expirar una solicitud ASIHTTP
- 2. Actualizar página C# ASP.NET
- 3. página ASP.NET Validación
- 4. Cómo expirar el tiempo Cachés de fragmentos de rieles?
- 5. Métodos de página en asp.net
- 6. Una página base en ASP.NET
- 7. ASP.NET Página maestra DefaultButton anular
- 8. ResolveUrl sin una página ASP.NET
- 9. página ASP.NET MVC/subpágina enrutamiento
- 10. Página de configuración de ASP.NET
- 11. ¿Cómo expirar la memoria caché de fragmentos cuando cambia la configuración regional?
- 12. asp.net mvc área de página por defecto
- 13. Espere la página en ASP.NET MVC
- 14. Rellenar una tabla en una página ASP.NET
- 15. Evento de descarga de página en asp.net
- 16. LINQ asp.net página contra MS Access.
- 17. Compensación caché de página en ASP.NET
- 18. ¿Botón predeterminado en asp.net (página maestra)?
- 19. Métodos de página ASP.NET vs servicio web
- 20. Múltiples formularios en la página ASP.NET
- 21. página ASP.net sin código detrás de
- 22. Asp.Net System.Web.Routing Buscar real .aspx Página
- 23. Múltiples idiomas (inglés, francés) en ASP.NET Página
- 24. ASP.NET AJAX Métodos de página de UserControl
- 25. Tiempo de generación de página - ASP.Net MVC
- 26. redirigir a la página actual en ASP.Net
- 27. Caché ASP.NET página para usuarios anónimos solo
- 28. Devolver objeto JSON desde una página ASP.NET
- 29. base.OnLoad (e) en una página ASP.NET
- 30. Lógica condicional en la página ASP.net
Parece una buena sugerencia si comenzáramos nuestra aplicación desde cero, pero tenemos una aplicación existente que solo necesito una solución rápida, demasiado trabajo para volver a diseñar todo. –
Estas son en general implementaciones bastante simples. ¿Quieres decir que no puedes cambiar ningún código? – womp
Podemos cambiar el código, pero esperaba algo así como simplemente establecer una propiedad en la página para desactivar el almacenamiento en caché de la página. –