Salı, Mayıs 26, 2015

ASP.Net HttpHandlers(ashx) Session Kullanımı

ASP .Net projelerinde sıkça projeye özel handler lar oluşturulur. Örneğin; ajax işlemleri, resim işleme vs... gibi. Kullanıcı tarafından oluşturulan bu handler larda session kullanımı standartta kapalıdır. Ufak bir trik ile session kullanımına açabiliriz.

VS ile oluşturduğum handler(ashx) dosyasının sınıfı standart olarak aşağıdaki gibi tanımlanır;

public class StateChangeModule : IHttpHandler
{
         public void ProcessRequest(HttpContext context)
        {
                      .
                      .
                      .
}

Görüldüğü gibi handler sınıfı, sadece IHttpHandler inteface'ini implemente edilmiş olarak geliyor. Biz bu sınıfa IRequiresSessionState inteface'ini implemente ederek session kullanamına açmış oluruz. 

public class StateChangeModule : IHttpHandler,IRequiresSessionState
{
         public void ProcessRequest(HttpContext context)
         {
                 string myValue = context.Session["userName"];
         }
          
           .
           .
           .      
}

Eğer sadece sessiondan veri okuma yapacaksak IReadOnlySessionState arayüzünü implemente etmek yeterli. Olay bu kadar basit.

Hiç yorum yok: