Estado de la Sesion

23/10/2003 - 09:21 por virtus | Informe spam
Hola.
¿Alguien ha programado o implementado el estado de sesión
en código C# bajo ASP.NET?.
Me explico, estoy teniendo problemas a la hora de manejar
el estado de la sesión, puesto que estoy almacenando
variables que posteriormente en llamadas a otras páginas
ASP.NET de mi aplicación, no me rescatan los valores (da
la impresión que el estado de la sesión no es el mismo o
me lo está limpiando, he repasado y comprobado antes
archivos de configuración, configuración de mi página,
VS.NET, etc, etc sin obtener resultado alguno).
Debido a estos problemas y que necesito almacenar
información en el estado de sesión para ir propagando al
resto de páginas que llama mi aplicación, he pensado en
implementar una especie de estado de sesión propio.
No se si esto que planteo es factible pero he visto que
hay una clase "HttpSessionState" que creo que me
permitiría hacer lo que planteo, pero mi gran duda es que
no se por donde empezar y como se podría hacer.
NOTA: He visto por ahí que hay más gente que está
programando en C# y ASP.NET y está teniendo problemas
similares con el estado de sesión. ¿Sera un bug?.

Saludos.

Preguntas similare

Leer las respuestas

#1 Alejandro Mezcua
23/10/2003 - 13:45 | Informe spam
Hola, virtus.

El objeto Session de ASP.NET es una instancia de la clase que tu mencionas,
HttpSessionState, que te proporciona el entorno de ejecución de ASP.NET para
que mantengas información por usuario (distingue a cada usuario por una
cookie).

¿Qué problemas tienes concretamente con el uso de Session?, ¿puedes poner
algo de código?

Un saludo,

Alejandro Mezcua
MVP .NET
Zaltor Soluciones Informáticas

"virtus" wrote in message
news:064d01c39936$3e388100$
Hola.
¿Alguien ha programado o implementado el estado de sesión
en código C# bajo ASP.NET?.
Me explico, estoy teniendo problemas a la hora de manejar
el estado de la sesión, puesto que estoy almacenando
variables que posteriormente en llamadas a otras páginas
ASP.NET de mi aplicación, no me rescatan los valores (da
la impresión que el estado de la sesión no es el mismo o
me lo está limpiando, he repasado y comprobado antes
archivos de configuración, configuración de mi página,
VS.NET, etc, etc sin obtener resultado alguno).
Debido a estos problemas y que necesito almacenar
información en el estado de sesión para ir propagando al
resto de páginas que llama mi aplicación, he pensado en
implementar una especie de estado de sesión propio.
No se si esto que planteo es factible pero he visto que
hay una clase "HttpSessionState" que creo que me
permitiría hacer lo que planteo, pero mi gran duda es que
no se por donde empezar y como se podría hacer.
NOTA: He visto por ahí que hay más gente que está
programando en C# y ASP.NET y está teniendo problemas
similares con el estado de sesión. ¿Sera un bug?.

Saludos.
Respuesta Responder a este mensaje
#2 virtus
23/10/2003 - 15:54 | Informe spam
Hola.
Te mando el Código de 2 pantallas ASP.NET simples.
Contienen un TextBox y un Button. En la primera cuando se
pulsa el botón se almacena en la Sessión una
variable "TEXTO" con el valor del ID de Sessión y el texto
introducido por el usuario.
En la segunda pantalla al pulsar el botón se muestra el
valor de la Sesión (ID) y el contenido de lo supuestamente
almacenado en la sesión ("TEXTO"), pero al ejecutarlo en
mi máquina (ya sea depurando o no) me aparece la Sesión ID
igual en las 2 pantallas (se mantiene) pero no me aparece
lo que introduje en el TextBox.
Si te funciona, por favor, decirmelo. Saludos.

CODIGO pantalla ASP.NET "Prueba1.aspx"
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Prueba1
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button
Button1;
protected
System.Web.UI.WebControls.TextBox enttexto;
protected System.Web.UI.WebControls.Label
Label1;

private void Page_Load(object sender,
System.EventArgs e)
{
// Introducir aquí el código de
usuario para inicializar la página
enttexto.Text = string.Concat
(Session.SessionID, " ");
}

#region Código generado por el Diseñador
de Web Forms
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: llamada requerida por
el Diseñador de Web Forms ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Button1.Click += new
System.EventHandler(this.Button1_Click);
this.Load += new
System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender,
System.EventArgs e)
{
Session.Add("TEXTO",
enttexto.Text);
Response.Redirect
("../Prueba2/WebForm1.aspx");
}
}
}
- CODIGO PAGINA ASP.NET "Prueba2.aspx"
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Prueba2
{
public class WebForm1 : System.Web.UI.Page
{
protected
System.Web.UI.WebControls.TextBox enttexto;
protected System.Web.UI.WebControls.Button
Button1;

private void Page_Load(object sender,
System.EventArgs e)
{
// Introducir aquí el código de
usuario para inicializar la página
}

#region Código generado por el Diseñador
de Web Forms
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: llamada requerida por
el Diseñador de Web Forms ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}

private void InitializeComponent()
{
this.Button1.Click += new
System.EventHandler(this.Button1_Click);
this.Load += new
System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender,
System.EventArgs e)
{
enttexto.Text = string.Concat
(Session.SessionID, Session["TEXTO"]);
}
}
}
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida