Session State özelliği ile aynı tarayıcıdan gelen istekleri tanır ve isteklerin yaşam süreleri dolana kadar gelen istekleri saklar. Session State tüm Asp.Net uygulamalarında default olarak gelmektedir. SessionState için uygulamanızın web.config dosyasında bir kaç tanımlama yapmak gerekir. Şimdi bunlara bakalım.

 

Mode : Session değerlerinin nerede saklanacağını söyler.
Cookieless : SessionID’lerin Cookie’lerde mi yoksa URL içinde mi ayarlanacak.
regenerateExpiredSessionID : Yaşam süreleri dolmuş sessionları yeniden oluşturmak için kullanılır
timeout : Dakika cinsinden session süresi belirtilir.
sqlConnetionString : Sessionların nerede tutulacağını gösterir. veritabanı ise veritabanın yerini belirtmemizi sağlar.

Session Modeları

off -> Sessionın kapatıldığı durumdur.

In-proc -> Kullanıcıların oturum bilgileri uygulamanın bulunduğu sunucuların belleklerinde tutulmaktadır. Sunucu yeniden başlarsa oturum bilgileri de kaybolur. In-proc kullanmanın bir çok avantajı olduğu gibi dezavantajı da bulunmaktadır.Oturum bilgieri uygulama sunucusunda saklandığı için veriler daha hızlı olur. ama bir çok kişinin bilgilerini tutacağı için erişim performansını etkiler.

State Server -> Web uygulamasının bulunduğu sunucudan farklı bir sunucuda bulunur IIS’ten bağımsızdır ve tek başına çalışabilen Windows Uygulamaları kullanır. Başka bir sunucuda olduğu için uygulama yeniden başlasa bile oturum bilgileri kaybolmaz. Serileştirme gibi dezavantajı vardır, Kişi tekrar oturum açtığında farklı süreç izleyeeğinden erişim ve maliyetin artmasına sebep olur.

<system.web>
<sessionState mode=”StateServer” stateConnectionString=”127.0.0.1:42424″
timeout=”30″>
</sessionState>
</system.web>

SQL Server -> Session türleri arasında en güvenilir diyebiliriz. Kukllanıcıların oturum bilgileri serileştirilerek veritabanına kaydetme işlemi yapılır. Sessionla gelen bilgiler IIS’in tekrar başlamasından etkilenmez. İşlem süresi biraz daha uzundur.

<system.web>
<sessionState mode=”SQLServer” timeout=”30″>
</sessionState>
</system.web>

Custom -> SessionIDManager sınıfından kalıtım alarak ve CreateSessionID ve Validate metodlarını override ederek özel SessionID’ler yazılabilir ve bunların doğrulaması yapılabilir.

<sessionState mode=”InProc” cookieless=”true” timeout=”1″></sessionState>

Written by Sümeyra Akbıyık
hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Leave a Comment