(Tamlık için güncellendi)
Oturum değişkenlerine herhangi bir sayfadan veya Session["loginId"]
herhangi bir sınıftan ve herhangi bir sınıftan (örn. Sınıf kitaplığının içinden) kullanarak denetime erişebilirsiniz.System.Web.HttpContext.Current.Session["loginId"].
Ama lütfen orijinal cevabım için okumaya devam edin ...
Her zaman oturum değişkenlerine erişimi kolaylaştırmak için ASP.NET oturumu çevresinde bir sarmalayıcı sınıf kullanı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; }
}
Bu sınıf, ASP.NET oturumunda kendisinin bir örneğini depolar ve oturum özelliklerinize, örneğin aşağıdaki gibi herhangi bir sınıftan güvenli bir şekilde erişmenizi sağlar:
int loginId = MySession.Current.LoginId;
string property1 = MySession.Current.Property1;
MySession.Current.Property1 = newValue;
DateTime myDate = MySession.Current.MyDate;
MySession.Current.MyDate = DateTime.Now;
Bu yaklaşımın birkaç avantajı vardır:
- sizi çok sayıda dökümden kurtarır
- uygulamanız boyunca sabit kodlu oturum anahtarlarını kullanmak zorunda değilsiniz (ör. Oturum ["loginId"]
- MySession'ın özelliklerine XML doc yorumları ekleyerek oturum öğelerinizi belgeleyebilirsiniz
- oturum değişkenlerinizi varsayılan değerlerle başlatabilirsiniz (örn. boş olmadığından emin olma)