(Actualizado para completar)
Puede acceder a las variables de sesión desde cualquier página o control utilizando Session["loginId"]
y desde cualquier clase (p. desde el interior de una biblioteca de clases), utilizando System.Web.HttpContext.Current.Session["loginId"].
Pero por favor leyendo para tener mi primera respuesta ...
siempre uso una clase envoltura alrededor de la sesión ASP.NET para simplificar el acceso a las variables de sesión:
public class MySession
{
// private constructor
private MySession()
{
Property1 = "default value";
}
// Gets the current session.
public static MySession Current
{
get
{
MySession session =
(MySession)HttpContext.Current.Session["__MySession__"];
if (session == null)
{
session = new MySession();
HttpContext.Current.Session["__MySession__"] = session;
}
return session;
}
}
// **** add your session properties here, e.g like this:
public string Property1 { get; set; }
public DateTime MyDate { get; set; }
public int LoginId { get; set; }
}
esta clase almacena una instancia de sí mismo en la sesión ASP.NET y le permite acceder a sus propiedades de sesión de una manera de tipo seguro de cualquier clase, por ejemplo, así:
int loginId = MySession.Current.LoginId;
string property1 = MySession.Current.Property1;
MySession.Current.Property1 = newValue;
DateTime myDate = MySession.Current.MyDate;
MySession.Current.MyDate = DateTime.Now;
Este enfoque tiene varias ventajas:
- le ahorra una gran cantidad de tipo de fundición a presión
- que no tienen que utilizar claves de sesión no modificables a través de su aplicación (por ejemplo, Sesión [ "loginid"]
- puede documentar sus artículos de sesión mediante la adición de comentarios documento XML en las propiedades de MySession
- puede inicializar sus variables de sesión con valores por defecto (por ejemplo, asegurando que no son nulos)
Hola, tenemos que escribir el código para get y set, ¿verdad? "public int LoginId {get; set;}" – Prashant
Lo he escrito como: get {return Convert.ToString (HttpContext.Current.Session ["webm_login"]); } set {HttpContext.Current.Session ["webm_login"] = value; } – Prashant
¿Es la forma correcta de obtener y establecer? – Prashant