(为了完整性起见,已更新) 您可以使用Session["loginId"]
任何类从任何页面或控件访问会话变量(例如,从类库内部),使用System.Web.HttpContext.Current.Session["loginId"].
但是请继续阅读我的原始答案…
我总是在ASP.NET会话周围使用包装器类,以简化对会话变量的访问:
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; }
}
此类在ASP.NET会话中存储其自身的一个实例,并允许您从任何类中以类型安全的方式访问会话属性,例如:
int loginId = MySession.Current.LoginId;
string property1 = MySession.Current.Property1;
MySession.Current.Property1 = newValue;
DateTime myDate = MySession.Current.MyDate;
MySession.Current.MyDate = DateTime.Now;
这种方法有几个优点: