Visual CSharp .NET - Session donde permanecen

 
Vista:

Session donde permanecen

Publicado por Andres (8 intervenciones) el 16/04/2006 06:18:59
Hola un gran saludo a todos, tenia la siguiente duda y queria saber quien haber quien me puede colaborar, resulta que en paginas aspx utilizo normalmente sessiones donde mantengo la informacion de los dataset desconectados, entonces me di cuenta que normalmente la mayoria de estas sessiones las uso en diferentes paginas de mi aplicacion pero claro cada una es creada en la pagina en su momento, lo que queria hacer es tener una clase de solo sessiones, pero me surge la duda si por ejemplo cuando muchos usuarios esten usando una pagina determinada y esa pagina hace el llamado a una funcion que crea una session, mi pregunta es si el caso de que se produzca un error para algun usuario con la session se van a ver afectados otros ususarios, o eso no tiene nada que ver, porque la verdad no se si la session en ese momento esta alojada en el servidor o en cada uno de los usuarios en el cliente tiene una session con los datos y no hay problema en crear las sessiones de esta forma, para no repetir tanto codigo en las paginas. Gracias

//Esta el la clase que me crea las sessiones

using System;
using System.Web.SessionState;
using DtCo.DSL;
using DtCo.ESL;
using DtCo.Tools;

namespace DtCo.WEB
{
/// <summary>
/// Summary description for SessionActiva.
/// </summary>
public class SessionActiva // <--Nombre de la clase
{

public static PaiDepCiu_DS ObjSessionUbicacion;

#region Constructor

public SessionActiva()
{
//
// TODO: Add constructor logic here
//
}

#endregion //Constructor

#region Ubicacion [pais/Departamento/Ciudad]

/// <summary>
/// Se carga en la variable session {session("ObjSessionUbicacion") el tipo dataset{PaiDepCiu_DS} PAIS, DEPARTAMENTO, CIUDAD}
/// </summary>
public static void cargaDatasetUbicacion(System.Web.UI.Page aspxPage) //aspxPage = this
{

PanelServices ServicesEsl = new PanelServices();

try
{

ObjSessionUbicacion = new PaiDepCiu_DS();

ObjSessionUbicacion.Clear();
ObjSessionUbicacion.Dispose();

{

ObjSessionUbicacion = ServicesEsl.Esl_ObtenerAllUbicacion(); //Retorna el dataset PaiDepCiu_DS
aspxPage.Session.Add("ObjSessionUbicacion", ObjSessionUbicacion);
}
catch(Exception ex)
{
throw new Exception(ex.ToString());
}
finally
{
ServicesEsl = null;
}
}

/// <summary>
/// llena el objeto ya creado con los datos de la session para postback posteriores |
/// <c>miubicacion = (PaiDepCiu_DS)Session["ObjSessionUbicacion"];</c>
/// </summary>
/// <example>miubicacion = (PaiDepCiu_DS)Session["ObjSessionUbicacion"];</example>
public static void ObtenerSessionActiva(System.Web.UI.Page aspxPage)
{
if(aspxPage.Session["ObjSessionUbicacion"] != null)
ObjSessionUbicacion = (PaiDepCiu_DS)aspxPage.Session["ObjSessionUbicacion"];
else
MsgBox.CreateMessageAlert(aspxPage,"Session[ObjSessionUbicacion] El Objeto no existe!","strkey5002"); //aspxPage = this

}

#endregion //end Ubicacion [pais/Departamento/Ciudad]
}
}

//----------------------------
y en la pagina web lo utilizo asi:

llamo esta funcion para que se carge por ejemplo un dropdownlist

private void m_llenarListaPais()
{
SessionActiva.cargaDatasetUbicacion(this); //Creo una session para el objeto
//SessionActiva.ObtenerSessionActiva(this); //obtengo los datos de la session ya creada, pero la uso cuando si es postback

ListPais.Items.Clear();
ListPais.DataSource = SessionActiva.ObjSessionUbicacion;
//ListPais.DataMember = ObjSessionInstitucionDS.INSTITUCION.ToString();
ListPais.DataValueField = SessionActiva.ObjSessionUbicacion.PAIS.Columns["PAI_ID"].ToString();
ListPais.DataTextField = SessionActiva.ObjSessionUbicacion.PAIS.Columns["PAI_NOMBRE"].ToString();
ListPais.DataBind();
ListPais.Items.Insert(0,new ListItem("Seleccione","-1"));
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder