SORU
7 Mart 2009, CUMARTESİ


Nasıl oturum değişkenleri erişmek için ASP.NET herhangi bir sınıftan?

Benim uygulamada App_Code klasöründe sınıf bir dosya oluşturduk. Bir oturum değişkeni var

Session["loginId"]

Bu oturum benim sınıf değişkenleri erişmek istiyorum, ama şu satırı yazıyorum sonra hata veriyor

Session["loginId"]

Herkes ASP.NET 2.0 app_code klasöründe oluşturulan bir sınıf içinde oturum değişkenleri erişmek için nasıl bana söyleyebilir (C#)

CEVAP
7 Mart 2009, CUMARTESİ


(Bütünlüğü için güncelleştirilmiş)
Herhangi bir sınıf (sınıf kitaplığı içinde örneğin) herhangi bir sayfa ya da kontrolü Session["loginId"] kullanarak ve oturum değişkenleri, System.Web.HttpContext.Current.Session["loginId"]. kullanarak erişebilirsiniz

Ama lütfen benim orijinal cevap için okuyun...


Ben her zaman ASP.NET oturum etrafında sarıcı bir sınıf oturum değişkenleri erişimi kolaylaştırmak için 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 oturumda kendisi bir kopyasını saklar ve herhangi bir sınıf, e tip-güvenli bir şekilde oturum özellikleri erişim sağlar.g bu gibi:

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 birçok avantajı vardır:

  • tür çevrim çok kurtarır
  • uygulama boyunca sabit kodlanmış oturum anahtarları kullanmak zorunda değilsiniz (örneğin Session [""] uzun
  • MySession özelliklerini XML belge açıklamaları ekleyerek oturum öğeler belge
  • varsayılan değerler (örneğin boş değil güvence) ile oturum değişkenleri başlatılamıyor

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • foreignimage

    foreignimage

    13 HAZİRAN 2006
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006