lunes, 11 de mayo de 2009

Usar Parametros sin mostrarlos (RewritePath)

En ciertas ocaciones tenemos que usar parametros ejemplo Default2.aspx?p=1 pero no queremos que se miren es mas por seguridad seria muy bueno.

el sitio ingresa por default aqui:

http://localhost/prueba/Default.aspx

Dentro de default queremos ingresar a la seguna pagina enviando parametros:

http://localhost/prueba/Default2.aspx?p=1

pero aqui ocurre lo que no queremos que se mire el parametro, como deberiamos cambiarlo para que funcione el parametro pero que no se mire. Deberiamos hacerlo asi


http://localhost/prueba/Default.aspx/sitio2

pero como notan no estamos enviando el parametro y funcionara igual si siguien los siguiente pasos:

1.) Ingrese al Global.asax si no esta generelo.
2.) Capture el evento Application_BeginRequest

Ejemplo:
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)

If HttpContext.Current.Request.Path.ToLower.Contains("sitio2") Then
HttpContext.Current.RewritePath("~/Default2.aspx?p=2")
End If

End Sub

ingresara a la Default 2 enviara el parametro y no se vera en que ruta estan ya que en el URL de la pagina seguira saliento http://localhost/prueba/Default.aspx

espero que esto ayude alguien.

2 comentarios:

Anónimo dijo...

Este post esta bueno, solo tengo una duda. Si el request en este caso id, su valr fuera dinamico, como se lo pasariamos???

Saludos

chino dijo...

tambien tengo la duda como realizar el cambio dinamico, ya que ese ejemplo se ve muy util pero, saber como hacerlo dinamico igual sigo investigando y si lo encuentro te lo paso.