none
Pasar variable Session entre formularios RRS feed

  • Pregunta

  • Hola buenas tardes, estoy desarrollando una pagina web C# y necesito enviar una variable de tipo Session en el evento click de un botón, el detalle es que link de ese formulario no esta dentro de mi proyecto, es posible realizar esta acción? si es así como lo haría, agradecería su ayuda . este es el código que tengo.

            protected void enviar(object sender, EventArgs e)
            {
                Response.Redirect("http://www.pagina.org.mx:8080/scg/vistaa.aspx");
                Session["usuario"] = 6090;
            }

    por otro lado el formulario vistaa.aspx(que no esta dentro de mi proyecto, ni no ya publicado en otro proyecto) requiere la variable session de esta forma

    if (Session["usuario"] == null)
                { Response.Redirect("Default.aspx"); }

     
    martes, 5 de diciembre de 2017 23:15

Respuestas

  • No, no se puede. El Session solo funciona dentro de una misma Aplicación en IIS (que normalmente se corresponde con un único proyecto). Si necesitas pasar valores entre proyectos tendrás que recurrir a algún otro mecanismo, como por ejemplo una Cookie (pero esto solo funcionará dentro del mismo dominio), o pasar los valores en el QueryString o en un Post.

    Por ejemplo,  Response.Redirect("http://www.pagina.org.mx:8080/scg/vistaa.aspx?usuario=6090");

    y luego en destino recuperarlo con

    Request.QueryString["usuario"]

    Si te preocupa que el numero de usuario pueda ser manipulado en la querystring, usa criptograf'ia para cifrarlo, y comparte la clave criptografica entre las dos aplicaciones. Recuerda usar sal en la criptografia para evitar que salven y reutilicen el valor cifrado.

    • Marcado como respuesta D. Velazquez miércoles, 6 de diciembre de 2017 14:46
    miércoles, 6 de diciembre de 2017 12:26
  • hola

    >>necesito enviar una variable de tipo Session en el evento click de un botón

    no puedes enviar un objeto session el cual no petenerce a al dominio de la otra aplicacion, quizas podrias enviarlo en la url

            protected void enviar(object sender, EventArgs e)
            {
                Response.Redirect("http://www.pagina.org.mx:8080/scg/vistaa.aspx?usuario=6090");
            }

    en la apgina vistaa.asxp lo recuepras usando el Request.QueryString[]

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta D. Velazquez miércoles, 6 de diciembre de 2017 14:47
    miércoles, 6 de diciembre de 2017 13:16

Todas las respuestas

  • No, no se puede. El Session solo funciona dentro de una misma Aplicación en IIS (que normalmente se corresponde con un único proyecto). Si necesitas pasar valores entre proyectos tendrás que recurrir a algún otro mecanismo, como por ejemplo una Cookie (pero esto solo funcionará dentro del mismo dominio), o pasar los valores en el QueryString o en un Post.

    Por ejemplo,  Response.Redirect("http://www.pagina.org.mx:8080/scg/vistaa.aspx?usuario=6090");

    y luego en destino recuperarlo con

    Request.QueryString["usuario"]

    Si te preocupa que el numero de usuario pueda ser manipulado en la querystring, usa criptograf'ia para cifrarlo, y comparte la clave criptografica entre las dos aplicaciones. Recuerda usar sal en la criptografia para evitar que salven y reutilicen el valor cifrado.

    • Marcado como respuesta D. Velazquez miércoles, 6 de diciembre de 2017 14:46
    miércoles, 6 de diciembre de 2017 12:26
  • hola

    >>necesito enviar una variable de tipo Session en el evento click de un botón

    no puedes enviar un objeto session el cual no petenerce a al dominio de la otra aplicacion, quizas podrias enviarlo en la url

            protected void enviar(object sender, EventArgs e)
            {
                Response.Redirect("http://www.pagina.org.mx:8080/scg/vistaa.aspx?usuario=6090");
            }

    en la apgina vistaa.asxp lo recuepras usando el Request.QueryString[]

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta D. Velazquez miércoles, 6 de diciembre de 2017 14:47
    miércoles, 6 de diciembre de 2017 13:16
  • Muchas gracias por la respuesta, saludos.....
    miércoles, 6 de diciembre de 2017 14:47