none
Acceder a Variables de Sesion desde javascript

    Pregunta

  • Creo una variable de sesion del lado del servidor:

    Session["ejemplo"]="hola";

    y quiero saber si todovia no expira, pero atraves de javascript, alguien sabe si se puede? y como?

    viernes, 04 de junio de 2010 19:18

Todas las respuestas

  • El elemento Session, es un elemento de Servidor y no lo puedes acceder como lo estas intentando hacer.

    Con JavaScript, sólo puedes acceder a cosas que este presentes en el cliente, como el html. Puedes acceder a una base de datos, pero haciendo llamdas remotas.

    Necesariamente tienes que hacer un postback para ver si todavía no expira.

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    viernes, 04 de junio de 2010 19:37
  • No puedes acceder a las variables de sesión directamente desde javascript, pero puedes hacer un servicio web (el cual si puede acceder a la sesión) y consumirlo desde javascript.  En este artículo se explica cómo crear un servicio y llamarlo desde js: http://www.codeproject.com/KB/aspnet/wcfinjavascript.aspx.
    Suerte!


    Para el correcto funcionamiento y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido útil por favor Vótala.

    Gustavo A. Cantero
    Scientia® Soluciones Informáticas
    MCP - MCSD - MCTS - MCPD
    http://www.scientia.com.ar
    http://www.programandoamedianoche.com
    http://www.gustavo-cantero.com.ar
    viernes, 04 de junio de 2010 19:42
  • hola

    en realidad habria una forma si es que usas una llamada por medio de jquery, usando el comando $.ajax

    mira este link

    http://stackoverflow.com/questions/856553/how-to-get-asp-net-session-value-in-jquery-method

    a donde apuntoa es a la respuesta donde usa

    $.ajax({
        type: "POST",
        url: "./Default.aspx/GetSession",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(result){
            ('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', result.d);
        }
    });

    using System.Web.Services;
    [WebMethod]
    public static string GetSession()
    {
       return Session["CoBrowse"].ToString();
    }

    la priemr parte esta en el cliente dentro de tag de <script ..>, la segunda esta en tu pagina, es un Page Method

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 04 de junio de 2010 19:45
  • Gustavo cuidado con la llamada a un Servicio Web.

    ¿Cómo sabe el servicio Web, de que sesión viene la llamada? Recuerden que la sesiones es por usuario, la variable de cache si por todos los usuarios.

    Si en el Web Services tu haces un Session["miVariable"], buscará esa variable pero dentro del pool del Web Service, que no es el mismo pool de la aplicación Web.

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    viernes, 04 de junio de 2010 19:53
  • Sergio, ese problema puedes evitarlo utilizando compatilibidad con ASP.NET.  En este artículo explico cómo hacerlo: http://www.programandoamedianoche.com/2009/02/usar-variables-de-sesion-en-servicios-web-de-wcf/.
    Saludos.


    Para el correcto funcionamiento y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido útil por favor Vótala.

    Gustavo A. Cantero
    Scientia® Soluciones Informáticas
    MCP - MCSD - MCTS - MCPD
    http://www.scientia.com.ar
    http://www.programandoamedianoche.com
    http://www.gustavo-cantero.com.ar
    viernes, 04 de junio de 2010 20:00
  • A eso me refería, que falta un poco más para dar con la respuesta correcta, no sólo crear un servicio Web y llamar a la variable sesión. ¿Y si el servicio WEb o Servicio WCF esta en AppPool distinto al de Aplicación ASP.NET? ¿Cómo podemos compartir las sesiones entre aplicaciones?

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    viernes, 04 de junio de 2010 20:11
  • hola

    Para salvar estos problemas que comentan es que recomende usar Page Methods

    Esto webmethod que se expone contenidos en la propia pagina, funciona genial con variables de session, lo he usado muchas de veces y no he tenido problemas

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 05 de junio de 2010 2:46
  • yo estoy de acuerdo con Leandro, creo q la opcion mas sencilla y practica es usar los Page Method.

    Basta con tener un Metodo que te devuleva el valor de la Variable de Sesion(este metodo debera estar marcado con el atributo [WebMethod].

    En tu pagina deberas tener el ScriptManager con EnablePageMethods="true".

    Aqui te dejo el link de una pagina que te muestra un ejemplo... http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx

    Saludos

    ------------------------------------------------------

    Alan Chayan

     

     

     

    domingo, 06 de junio de 2010 3:27
  • Gracias a todos por su repuesta, estoy checando todos los links que me pasaron para saber cual es la solucion mas conveniente, cualquiera que sea se los hare saber, muchas gracias...
    lunes, 07 de junio de 2010 13:39
  • ¡Hola!

    ¿Fue posible solucionar su problema?

    Saludos
    Rafael Fagundes - Marque la respuesta como correcta si te ha sido de utilidad!
    lunes, 14 de junio de 2010 13:18
    Moderador
  • No de hecho todavia estoy tratanto de resolverlo con un [WebMethod] pero el problema que tengo es que me retorna "undefined", si alguien tiene un ejemplo simple y sencillo de lo que tengo que hacer seria de mucha ayuda.
    lunes, 14 de junio de 2010 18:36
  • hola

    no se si has podido aplicar la tecnica que comente usando Page Method (no un web service en un asmx), o sea definiendo metodo pero en la propia pagina web donde quieras realizar esta accion

    Using jQuery to directly call ASP.NET AJAX page methods

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 15 de junio de 2010 1:45
  • hola ,

     

    has visto los link que te han dado los compañero , te fue de utilidad  bueno de todo modo  te anexo unos link que tienes que ver con

    tu problema actual , espero tu respuesta.

     

    http://www.velocityreviews.com/forums/t98768-session-variables-accessing-from-client-side-java-script.html

    http://forums.asp.net/t/394291.aspx

     

    enmanuel grullard

    republica dominicana

     

    martes, 15 de junio de 2010 11:49
    Moderador