Saltar al contenido

Evitar el reenvío de formularios en ASP.Net (sin redirigirme a mí mismo)

Ya no necesitas buscar más por todo internet ya que estás al sitio perfecto, tenemos la respuesta que necesitas pero sin complicaciones.

Solución:

El problema es que está haciendo un POST de formulario que, si el usuario actualiza la página posteriormente, hace lo que se supone que debe hacer: volver a enviar el POST. No hay manera de evitarlo. Por lo tanto, las opciones disponibles para usted son las siguientes:

  1. Redirigir a una página de confirmación, pasando los resultados de la operación a la página de confirmación de alguna manera (por lo general, volver a cargar desde algún repositorio de datos si es algo que no es factible para una consulta string/cookie/etc.).
  2. Redirigir a la misma página, pero pasar el mensaje de éxito a través de una consulta string parámetro (o vuélvete tonto y guárdalo en session/ViewState/what-have-you-silliness).
  3. En lugar de publicar, obtenga un formulario, ya que parece que no está publicando ningún valor, solo iniciando algún tipo de procesamiento del lado del servidor. Para hacerlo, simplemente cambie su formulario de una publicación a un get, o simplemente haga un enlace. El peligro aquí es que no deberías estar haciendo ninguna operación transformadora/destructiva en ninguna operación get.

NOTA: asegúrese de desinfectar todas y cada una de las entradas del usuario (trate las entradas del usuario como malas siempre).

Probablemente sería más feliz con la última opción, pero todo depende de lo que realmente implica “hacer un montón de cosas y poner los resultados en syncResults…”.

ACTUALIZAR (años después)

Si bien debería ser obvio, podría no ser lo suficientemente obvio para algunos usuarios.: NUNCA debe exponerse a ataques XSS al mostrar directamente un “mensaje de éxito no desinfectado a través de una consulta string parámetro”. Las sugerencias asumieron que esto era obvio, pero en retrospectiva debería haber sido explícitamente claro en ese sentido.

Te mostramos las comentarios y valoraciones de los usuarios

Acuérdate de que tienes concesión de explicar tu experiencia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *