none
Llamar a Objeto Session desde un ashx con vb RRS feed

  • Pregunta

  • Buenas,

    ¿Como se llama a un objeto session desde este tipo de páginas? He probado, como no, llamar al session("nombre") y también he probado HttpContext.Current.Session("nombre"), pero ambos casos me dan error y únicamente me permite pasar los valores por url "HttpContext.Current.Request.QueryString("nombre")" pero es un código hash lo que intento pasar y por url no es correcto; Ahora, si me decís un modo mejor de pasar los parámetros al ashx que no sea por url mejor. Os indico, yo creo una cadena en mi .vb de este tipo "cadena += "<li><a href ='rsvCrr.ashx?id=5&idua=1&icl=8' target='iframeoculto' class='tg-btn tg-btn-lg'>Reservar</a></li>"

    Si se os ocurre algo mejor y, además, resolvéis mi duda, muchas gracias

    Un saludo

    miércoles, 10 de abril de 2019 10:46

Respuestas

  • Bien, el error que te está dando indica que el Session es Nothing.

    Y el Session es Nothing porque te falta habilitar el Session en el ashx. Fíjate que en la declaración del Class únicamente tienes puesto Implements IHttpHandler, pero te falta Implements System.Web.SessionState.IRequiresSessionState.

    • Marcado como respuesta Jesús Prieto jueves, 18 de abril de 2019 12:02
    jueves, 11 de abril de 2019 6:31

Todas las respuestas

  • De manera predeterminada el Session esta deshabilitado en los .ashx. Se puede habilitar agregandole la interfaz IRequireSessionState asi:

    public class MiClaseAshx : IHttpHandler, System.Web.SessionState.IRequiresSessionState

    y entonces accedes mediante context.Session["nombre"].

    miércoles, 10 de abril de 2019 12:00
  • De manera predeterminada el Session esta deshabilitado en los .ashx. Se puede habilitar agregandole la interfaz IRequireSessionState asi:

    public class MiClaseAshx : IHttpHandler, System.Web.SessionState.IRequiresSessionState

    y entonces accedes mediante context.Session["nombre"].


    En el ashx hago lo sigiente

    Imports System.Web.SessionState.IRequiresSessionState

    pero me dice que la declaración de importación no es necesacia. Supongo que será porque tiene

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

    Pero al hacer esto

    Dim hach As String = context.Session("CliD")

    al compilar me da error y no se por qué
    miércoles, 10 de abril de 2019 12:26
  • No es Imports sino Implements lo que necesitas poner en la clase.

    Habría que ver el error que te sale al compilar. Mi sospecha es que en el ProcessRequest tienes puesto otro nombre de parámetro en lugar de "context". Habría que ver cómo es tu clase y tu método para detectar cuál puede ser el problema.

    Y cuando preguntes en los foros nunca digas "me da error". Hay que decir cuál es el error. Piensa que quienes leen tu pregunta no están viendo tu pantalla, por lo que algo que puede ser perfectamente evidente para ti no es accesible para los demás. Un pequeño detalle como el de transcribir el mensaje de error ayudará muchísimo a que alguien pueda responder la pregunta.

    miércoles, 10 de abril de 2019 19:10
  • No es Imports sino Implements lo que necesitas poner en la clase.

    Habría que ver el error que te sale al compilar. Mi sospecha es que en el ProcessRequest tienes puesto otro nombre de parámetro en lugar de "context". Habría que ver cómo es tu clase y tu método para detectar cuál puede ser el problema.

    Y cuando preguntes en los foros nunca digas "me da error". Hay que decir cuál es el error. Piensa que quienes leen tu pregunta no están viendo tu pantalla, por lo que algo que puede ser perfectamente evidente para ti no es accesible para los demás. Un pequeño detalle como el de transcribir el mensaje de error ayudará muchísimo a que alguien pueda responder la pregunta.

    En primer lugar muchas gracias por tu ayuda. Te pego un pantallado del código para que veas el error y me digas que falta o qué está mal

    Gracias por tu ayuda

    jueves, 11 de abril de 2019 4:18
  • Bien, el error que te está dando indica que el Session es Nothing.

    Y el Session es Nothing porque te falta habilitar el Session en el ashx. Fíjate que en la declaración del Class únicamente tienes puesto Implements IHttpHandler, pero te falta Implements System.Web.SessionState.IRequiresSessionState.

    • Marcado como respuesta Jesús Prieto jueves, 18 de abril de 2019 12:02
    jueves, 11 de abril de 2019 6:31