asp.net - ver - ¿Cómo elimino una página del historial del navegador?
mi actividad google borrar historial descargar (7)
Tengo una página ASP.Net que contiene un botón. Esta página contiene un botón ServerSide de Paypal.
Cuando lo empujo, mi servidor hace varias cosas inteligentes en el back-end y luego reescribe la respuesta como un formulario y algunos javascript que publican este formulario en paypal.
Todo esto funciona genial
Sin embargo, si el usuario opta por hacer clic atrás, llegarán a mi formulario de publicación automática generado y eso los reenviará nuevamente a Paypal.
Pensé que si podía encontrar una manera de que mi página de formulario generada no existiera en la historia, entonces esto resolvería mi problema. pero no tengo idea de cómo corregir esto.
¿Cómo puedo eliminar mi página del historial o simplemente hacer que nunca aparezca?
Actualización: Gracias a todos ... Esas son algunas de las mejores respuestas. Subió todos los buenos, pero se fue con splattne a causa del uso inteligente de campo oculto en lugar de cookies para la decisión.
Como aplicación web, nunca tendrás control total del navegador del usuario. Incluso si hubiera una manera de ordenarle al navegador que no almacene la página en la historia, lo cual dudo, no puede estar seguro de que funcionará. Por ejemplo, un usuario inteligente podría modificar un navegador de código abierto para almacenar cada página en la historia, sin importar qué.
Creo que deberías tratar de abordar el problema desde otro ángulo. Podría, por ejemplo, detectar que es la misma forma que se reenvía y no enviarla a PayPal la segunda vez. Lo importante es hacerlo desde el servidor.
No estoy seguro si eso se puede hacer. Pero aquí hay una idea de cómo podría evitar que vuelva a enviar el formulario.
Podría insertar una entrada oculta en su formulario que al principio estaría vacía. En el envío, escribirá un valor en ese campo y se asegurará de verificar cada intento de envío si este campo está vacío.
Si no está vacío en el envío, usted sabe que el formulario se envió anteriormente y puede advertir al usuario.
No estoy seguro si puede hacerlo fácilmente con la integración de PayPal, pero el patrón "Publicar / Redirigir / Obtener" se puede usar para abordar este problema
Tal vez podría establecer una cookie antes de enviar el formulario.
Cuando se carga la página, verifique la existencia de esa cookie (lo que significa que el formulario ya fue enviado). Si se encuentra, en lugar de enviar automáticamente el formulario, vuelve automáticamente ( window.history.back()
) nuevamente.
window.location.replace(URL);
reemplazar (url)
Reemplace el documento actual con el que está en la URL proporcionada. La diferencia con el método assign () es que después de usar replace () la página actual no se guardará en el historial de la sesión, lo que significa que el usuario no podrá usar el botón Atrás para navegar hacia ella.
Una sugerencia útil para algunos podría ser esto ...
window.history.go(-2);
particularmente en el advenimiento de una ventana emergente de advertencia de falla de carga.
Simplemente puede programar su página para no enviarla, o hacer algo / navegar en otro lugar, si window.referer es la página de Paypal que intenta evitar invocar por segunda vez.