ASP.net MVC'de bir değer oturum boyunca nasıl saklanır?

Sinan Uğurlu

Kilopat
Katılım
30 Mayıs 2018
Mesajlar
495
Çözümler
11
Yer
Datacenter
Daha fazla  
Cinsiyet
Erkek
Meslek
Yazılım ve Ağ Altyapı Danış.
İyi günler, MVC üzerinde oturum açıyorum ancak kullanıcıya ait bazı bilgileri saklayabileceğim bir yöntem varmı? Session olarak saklıyorum, ancak tarayıcıyı kapatınca tamamıda sıfırlanıyor. AuthenticationCookie üzerinde şifreleyerek saklayabilirmiyim? Saklayabilirsem nasıl? Cookielere kullanıcılar eriştiği için güvenlik sorunu olacağını düşünüyorum.
 
Session (oturum) anlık olarak oluşturulan dosyalardır zaten. Yalnızca oradan çıkana kadar geçerlidir. Kalıcı kalması için Cookie kullanmanız gerekli. Cookie içerisine kendiniz salt edilmiş bir Hash ile veri saklayabilirsiniz. Dinamik salt olarak kullanıcının giriş adını kullanabilirsiniz örneğin.

Nasıl yapılacağı ile ilgili internette rehberler bulabilirsiniz diye düşünüyorum.
 
Teorik olarak session'da tutabilmeniz gerekiyor. Tarayıcı kapanınca gitmesi session mantığının yetersizliğinden değil. Session sistemleri de arkaplanda cookie kullanıyor. sunucu tarafında değerler bu cookie ile eşleştiriliyor. Asp.net MVC'de session süresini uzatmaya bakmanız daha mantıklı olacaktır. php'de böyle bir sorun yok örneğin session kullanırken, tarayıcıyı kapatsanız da session sonlanmıyor.

burada tam ihtiyaçlarınızı anlamak gerek. kullanıcıya ait her bilgiyi session'da saklamak mantıklı değil. asp.net de anladığım kadarıyla session bilgileri varsayılan olarak bellekte saklanıyor. bu da bellek şiştiğinde sorun oluşması demek. muhtemelen otomatik olarak uygulamayı yeniden başlatıp tüm sessionları sıfırlıyordur IIS böyle bir durumda.

yine de uzatmak isterseniz web.config den şu değeri arttırabilirsiniz.

Kod:
    <sessionState mode="InProc" timeout="60" />
genelde diğer kaynaklarda tavsiye edilen session için sqlserver modunu kullanmak olmuş. böylece bellek şişmez hem de restart durumunda sessionlar kaybolmaz. tabi dotnet core mu kullanıyorsunuz, klasik mvc mi, sql server mı kullanıyorsunuz başka bir db mi bunları bilmeden bir şey önermek de zor.
 

Geri
Yukarı