(Оновлено для повноти)
Ви можете отримати доступ до змінних сеансів з будь-якої сторінки або керування за допомогою 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;
Цей підхід має ряд переваг:
- це рятує вас від безлічі типових кастингів
- Вам не доведеться використовувати жорстко закодовані сеансові ключі протягом усієї програми (наприклад, Session ["loginId"]
- ви можете задокументувати елементи сеансу, додавши коментарі документів XML щодо властивостей MySession
- ви можете ініціалізувати змінні сеансу зі значеннями за замовчуванням (наприклад, переконавшись, що вони не є нульовими)