Site Renkleri

.Net Dersleri

Session State



Bu ders ile başlayan ve iki bölümden oluşan yazı dizisinde, ASP.NET ‘in Session State’e getirdiği yenilikleri göreceğiz. İlk bölümde klasik ASP deki Session ile ASP.NET deki Session arasındaki farklılıklara değineceğiz. Ayrıca, yazacağımız örnek kod parçaları sayesinde, Session nesnesini kullanmayı öğreneceğiz.
Session, program geliştiricilerin ASP sayfalarında, sitelerindeki ziyaretçiler hakkında bazı bilgileri, belli bir süre için tutmakta kullandıkları nesnedir.

Programlama mantığı olarak düşünmek gerekirse, Session bellekte tutulan bir Hash Tablosundan veya bir sözlükten farkı yoktur. Örneğin, sizin siteniz ziyaretçilerin kendilerine özel kullanıcı adı ve şifreleriyle girebildikleri bölümler içeriyorsa, sisteme her giren üyenin ismi ve kullanıcı adı Session nesnesinde tutulabilir :

Session["uye_adi"] = "misafir";
Session["ip"] = Request.ServerVariables["REMOTE_ADDR"].ToString();

Ziyaretçi sitenizde gezmeye devam ederken, yeni bir sayfada üyenizin bilgilerine ihtiyaç duyduğunuzda, bu bilgiler kullanıcı tarafından yeniden girilmesine gerek kalmadan Session nesnesinden okunabilir.

// Üye ‘ nin adını almak
string uye_adi = Session["uye_adi"].ToString();

Klasik ASP Session nesnesinde, client taraftaki ziyaretçiye benzersiz (unique) bir değer atanıyordu. Bu değer, client tarafından her bir istekde (request), server’a gönderilen HTTP Cookie içinde saklanıyordu. Server cookie içindeki değeri okur ve Session nesnesine gerekli değerleri atardı

Klasik ASP Session Nesnesindeki Problemler
ASP geliştiricileri Session nesnesinin önemli bir özellik olduğunu bildikleri kadar, bazı noktalarda yetersiz kaldığını da biliyorlardı. Bu noktalar;

Süreç Bağımlılığı (Process Dependent) : ASP Session nesneleri, server tarafta bir süreçle oluşturuluyordu. Server tarafta olacak bir süreç kaybı veya hatası, otomatik olarak Session nesnesinin kaybına yol açıyordu

Server Sınırlaması (Server Farm Limitations) : Ziyaretçiler, Internette bir siteden başka bir siteye geçtiklerinde Session’ları onlarla birlikte gelmiyordu. Yani ASP Sessionları makine (server) spesifikti. Her ASP Server’ı kendisine özel Session nesnesi sunuyor ve ziyaretçi aynı Server’ı yeniden ziyaret edene kadar, Session nesnesi ulaşılamazdı..

Cookie Bağımlılığı (Cookie Dependent) : HTTP Cookielerini kabul etmeyen ziyaretçiler, Session nesnesinin getirdiği faydalardan yararlanamıyordu.Bazı ziyaretçiler, cookielerin özel yaşamı ve güvenliği tehlikeye attığını düşündüklerinden, cookielere izin vermiyorlardı. Tüm bu sorunlar göz önüne alınarak, yeni ASP.Net Session nesnesi geliştirilmiştir;

Web Tasarımı | Site Tasarımı | Bilgisayar Dersleri | Hosting | Domain