none
Cerrar un formulario web RRS feed

  • Pregunta

  • Saludos cordiales, quería saber como cerrar un formulario web sin que tenga en cuenta unas validaciones, y sabiendo que es un formulario hijo de un master page?

    Agradecido de su ayuda 

    Carlos Ariel

    martes, 8 de enero de 2019 3:56

Respuestas

  • ¿A qué le llamas "cerrarlo"? Si es hijo de la master page, cabe suponer que no es un "pop-up", sino que forma parte de la "base" que se está viendo en el navegador. En este contexto, lo más normal para cerrarlo sería simplemente navegar a otro sitio, tal como la página inicial de la aplicación. Esto puedes hacerlo desde el code-behind poniendo Response.Redirect("default.aspx"), suponiendo que la página a la que quieres navegar se llama así.

    Si el problema es que quieres poner un botón de "Cancelar" pero el botón no funciona porque dispara las validaciones, el remedio es editar las propiedades de ese botón y ponerle False en la propiedad CausesValidation.

    martes, 8 de enero de 2019 6:38
  • Gracias Alberto por la información, me ha sido muy útil. Dios te bendiga.
    domingo, 27 de enero de 2019 23:08

Todas las respuestas

  • ¿A qué le llamas "cerrarlo"? Si es hijo de la master page, cabe suponer que no es un "pop-up", sino que forma parte de la "base" que se está viendo en el navegador. En este contexto, lo más normal para cerrarlo sería simplemente navegar a otro sitio, tal como la página inicial de la aplicación. Esto puedes hacerlo desde el code-behind poniendo Response.Redirect("default.aspx"), suponiendo que la página a la que quieres navegar se llama así.

    Si el problema es que quieres poner un botón de "Cancelar" pero el botón no funciona porque dispara las validaciones, el remedio es editar las propiedades de ese botón y ponerle False en la propiedad CausesValidation.

    martes, 8 de enero de 2019 6:38
  • Alberto Gracias por tu respuesta.  Lo que realmente deseo es que al navegar hacia un formulario loguin (es como si saliera y necesitara de nuevo loguearse), no pueda retroceder por el navegador a la aplicación. 
    sábado, 26 de enero de 2019 0:05
  • Si estás siguiendo los estándares para la autenticación y autorización, entonces basta con que ejecutes esto:

    FormsAuthentication.SignOut

    Eso hace un "logout" del usuario, con lo que rebota a la página de Login en el momento en que intente acceder a cualquier página protegida, sea por el método que sea, incluyendo retroceder por el navegador.

    Hay un pequeño problema con esto y es que en algunos casos el SignOut no borra la cookie de autenticación, con lo que si el usuario ya había hecho login antes entonces puede todavía entrar a las páginas. Si te ocurre esto, lo que puedes hacer es limpiar la cookie además de hacer SignOut. Tienes un ejemplo de cómo hacerlo en este post:

    https://stackoverflow.com/questions/412300/formsauthentication-signout-does-not-log-the-user-out

    Adicionalmente, puede que te convenga desactivar el caché de las páginas en el navegador, porque si tiene alguna página guardada en caché el usuario podría retroceder a ella localmente en el navegador (el servidor ya no la vuelve a servir, pero se puede volver a ver la copia local). Esto en general es inofensivo, dado que solo muestra datos que el usuario ya ha visto antes, y el servidor no permite hacer un post desde la página cacheada, con lo que no se corren riesgos en ese sentido. No obstante, si deseas vaciar el caché, el mismo post anterior tiene un ejemplo de cómo hacerlo. Ojo, esto hay que meterlo en todas las páginas que se desea proteger, no vale con hacerlo desde la de salida.


    sábado, 26 de enero de 2019 8:06
  • Gracias Alberto por la información, me ha sido muy útil. Dios te bendiga.
    domingo, 27 de enero de 2019 23:08