none
Variables de session en login RRS feed

  • Pregunta

  • Hola foro,

    Tengo una duda, es sencilla, existe una aplicación de login donde utilizo una variable de sesión asi:

      Session("user") = UserName.Text

    El textbox username no lo dejo vació, sino que simplemente le doy enable = false, entonces la variable de sesión se alimenta de ahí, pero lo que quiero es dejar vació el textbox y que la variable de sesión se alimente de otra fuente... pero es lo que no sé como hacer. 

    Esto por que, se da las ocaciones en que el usuario da clic con la rueda del ratón, y esa sección se abre en otra pestaña... en vez que en la misma pestaña, así que en cuanto den clic en el botón logout, la variable desaparezca y en cuanto deseen realizar una actividad en la pestaña original se redirija a la web principal, esto me imagino que en el page_load si no detecta la sessión pues hace el postbackurl hacia la web principal.

    Saludos y gracias.

    martes, 8 de abril de 2014 3:26

Respuestas

  • pero lo que quiero es dejar vació el textbox y que la variable de sesión se alimente de otra fuente... pero es lo que no sé como hacer.

    que otra fuente ?

    podrias quizas asignar un asp:Hidden y que el valor del textbox se asigne al ese hidden oculto para poner el valor en la session desde el hidden

    se da las ocaciones en que el usuario da clic con la rueda del ratón, y esa sección se abre en otra pestaña

    eso no parece tener mucho sentido, la rueda del raton no abre nada en otra pestaña

    quizas sin querer le esta dando click al boton de aceptar o a la opcion de "abrir en una pestaña diferente"

    peor lo que planteas no es logico, si el boton de aceptar el login tiene la funcionalidad de abrir la pagina en una ventana diferente entonces si se abrira en una nueva pestaña pero no tiene nada que ver la rueda del mouse

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta jonsey10 jueves, 10 de abril de 2014 0:29
    martes, 8 de abril de 2014 10:58
  • para dejar texbox vacio , textbox1 = "";

    luego pasas la variable a a session ...... la ocupas en toda tu aplicación.                                      

     protected void Page_Load(object sender, EventArgs e)
        {


            Session["usu_id"] = "";
            Session["usu_nombre"] = "";
            Session["usu_clave"] = "";
            Session["usu_rol"] = "";
        }
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
             if (txt_usuario.Text != "" && txt_clave.Text != "")
            {

                av.Consulta = "SELECT A TU TABLA where CODIGO='" + txt_usuario.Text +  "' and CLAVE='" + txt_clave.Text + "'";
                a = av.llenardd3();

                if (a.Tables[0].Rows.Count > 0)
                {
                    Session["usu_nombre"] = a.Tables[0].Rows[0][0].ToString();
                    Session["usu_clave"] = txt_clave.Text;
                    Session["usu_rol"] = a.Tables[0].Rows[0][1].ToString();
                    Session["usu_area"] = a.Tables[0].Rows[0][2].ToString();



                    Response.Redirect("frmSeguimiento_zona.aspx");
                }
                else
                {
                    Response.Write("<script>window.alert('Usuario o Clave no Existe !!!!!.');</script>");
                }
            }
            else
            {
                Response.Write("<script>window.alert('Ingrese Usuario Y clave !!!!!.'); </script>");
            }


        }

    ///////////////////////////////////////// LUEGO RECIBES LA VARIABLE EN EL OTRO FORM.

                          

    p

    rotected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {

                if (Session["usu_nombre"] == null)
                {
                    Server.Transfer("frmLogin.aspx");

                }

    }

    }


    willy_inf

    • Marcado como respuesta jonsey10 jueves, 10 de abril de 2014 0:24
    martes, 8 de abril de 2014 12:21

Todas las respuestas

  • pero lo que quiero es dejar vació el textbox y que la variable de sesión se alimente de otra fuente... pero es lo que no sé como hacer.

    que otra fuente ?

    podrias quizas asignar un asp:Hidden y que el valor del textbox se asigne al ese hidden oculto para poner el valor en la session desde el hidden

    se da las ocaciones en que el usuario da clic con la rueda del ratón, y esa sección se abre en otra pestaña

    eso no parece tener mucho sentido, la rueda del raton no abre nada en otra pestaña

    quizas sin querer le esta dando click al boton de aceptar o a la opcion de "abrir en una pestaña diferente"

    peor lo que planteas no es logico, si el boton de aceptar el login tiene la funcionalidad de abrir la pagina en una ventana diferente entonces si se abrira en una nueva pestaña pero no tiene nada que ver la rueda del mouse

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta jonsey10 jueves, 10 de abril de 2014 0:29
    martes, 8 de abril de 2014 10:58
  • para dejar texbox vacio , textbox1 = "";

    luego pasas la variable a a session ...... la ocupas en toda tu aplicación.                                      

     protected void Page_Load(object sender, EventArgs e)
        {


            Session["usu_id"] = "";
            Session["usu_nombre"] = "";
            Session["usu_clave"] = "";
            Session["usu_rol"] = "";
        }
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
             if (txt_usuario.Text != "" && txt_clave.Text != "")
            {

                av.Consulta = "SELECT A TU TABLA where CODIGO='" + txt_usuario.Text +  "' and CLAVE='" + txt_clave.Text + "'";
                a = av.llenardd3();

                if (a.Tables[0].Rows.Count > 0)
                {
                    Session["usu_nombre"] = a.Tables[0].Rows[0][0].ToString();
                    Session["usu_clave"] = txt_clave.Text;
                    Session["usu_rol"] = a.Tables[0].Rows[0][1].ToString();
                    Session["usu_area"] = a.Tables[0].Rows[0][2].ToString();



                    Response.Redirect("frmSeguimiento_zona.aspx");
                }
                else
                {
                    Response.Write("<script>window.alert('Usuario o Clave no Existe !!!!!.');</script>");
                }
            }
            else
            {
                Response.Write("<script>window.alert('Ingrese Usuario Y clave !!!!!.'); </script>");
            }


        }

    ///////////////////////////////////////// LUEGO RECIBES LA VARIABLE EN EL OTRO FORM.

                          

    p

    rotected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {

                if (Session["usu_nombre"] == null)
                {
                    Server.Transfer("frmLogin.aspx");

                }

    }

    }


    willy_inf

    • Marcado como respuesta jonsey10 jueves, 10 de abril de 2014 0:24
    martes, 8 de abril de 2014 12:21
  • pero lo que quiero es dejar vació el textbox y que la variable de sesión se alimente de otra fuente... pero es lo que no sé como hacer.

    que otra fuente ?

    podrias quizas asignar un asp:Hidden y que el valor del textbox se asigne al ese hidden oculto para poner el valor en la session desde el hidden

    se da las ocaciones en que el usuario da clic con la rueda del ratón, y esa sección se abre en otra pestaña

    eso no parece tener mucho sentido, la rueda del raton no abre nada en otra pestaña

    quizas sin querer le esta dando click al boton de aceptar o a la opcion de "abrir en una pestaña diferente"

    peor lo que planteas no es logico, si el boton de aceptar el login tiene la funcionalidad de abrir la pagina en una ventana diferente entonces si se abrira en una nueva pestaña pero no tiene nada que ver la rueda del mouse

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Leandro, 

    Gracias por tu respuesta, probaré hacerlo con el hidden, y ues encontré esta web igual de MS sobre variables de sesión y como almacenarlas y que es este link Como guardar variables de sesión, y que se complementa con este otro tema Como leer los valores de un estado de sesión, solamente una predunta, cual es más recomendable? es decir, pues ambas soluciones son buenas pero por motivos de seguridad y de eficiencia, y claro para mí es mucho más cómodo usar el hidden, ahora, en el caso hipotético, en cuanto le den clic del botón derecho sobre el botón logout y luego : abrir en pestaña nueva, ahí entra una instrucción donde el hidden se vacía, aplica un response.redirect("defaul.aspx"), y ya está fuera, pero, en la pestaña anterior aún se ve como si el usuario estuviera adentro, ahí supongo que el valor guardado en el hidden también desaparece, y en cuanto den clic sobre cualquier botón de inmediato aplique el respond.redirect, o no?

    Otra cosa, pues mi mouse hace esto de, dar clic con la rueda central sobre un link, y este se abre en una nueva pestaña. No sé porque pero eso hace, es un Genious mini traveler mouse.

    Saludos.

    martes, 8 de abril de 2014 22:39
  • hola

    si abres la pagina en otro tab el valor del hideen no vieja a esa otra pagina porque es algo que esta con el html

    si quieres pasar el valor a la otra pagina lo pones en la url o en session

    response.redirect("defaul.aspx?key=valor");

    de esa forma con el Request.QueryString["key"]

    tomas el valor de la url cuando se abre la pagina en el tab del browser

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 9 de abril de 2014 0:24
  • hola

    si abres la pagina en otro tab el valor del hideen no vieja a esa otra pagina porque es algo que esta con el html

    si quieres pasar el valor a la otra pagina lo pones en la url o en session

    response.redirect("defaul.aspx?key=valor");

    de esa forma con el Request.QueryString["key"]

    tomas el valor de la url cuando se abre la pagina en el tab del browser

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Ok, perfecto, bueno, después de leer tu respuesta considero utilizar el hidden, pero buscando en la pagina de MSDN, en un apartado  dice que los datos guardados en el hiddenfile se pueden ver si el usuario ve el código fuente de la página, como se puede resolver esto? o que peligro representa esto para un login?

    Esta sería mi última duda. 

    Saludos y gracias.


    miércoles, 9 de abril de 2014 1:29
  • os datos guardados en el hiddenfile se pueden ver si el usuario ve el código fuente de la página

    claro el hidden es un control que genera html

    como se puede resolver esto?

    no se puede, sino usa el ViewState

    o que peligro representa esto para un login?

    pero si es para un login no veo que tiene que hacer un hidden o ninguna otra cosa

    si una pagina autentica solo hace eso y si pasa abre la pagina principal y listo

    lo que tenga que conservar lo deja en la Session en el servidor


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 9 de abril de 2014 5:04
  • Gracias Willy, no es exactamente lo que buscaba pero me base en un 80% de tu ejemplo. Solamente que utilice 

    Dim usuario As String = CType(Session.Item("usuario"), String)

    De hecho tengo algo muy parecido en varias aplicaciones, pero me faltaba concretar los Session.

    Saludos.

    jueves, 10 de abril de 2014 0:24
  • Leandro, gracias por tu respuestas, pues al final logré lo que deseaba, el hidden lo utilicé pero al final, en cierta forma existe una introducción donde le da la bienvenida al usuario, y es por sentido común, cerrar la sesión para borrar todas las variables. Además, el hidden me ahorró un buen de trabajo en estar escondiendo un label.

    Saludos.


    • Editado jonsey10 jueves, 10 de abril de 2014 0:30
    jueves, 10 de abril de 2014 0:28