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

Sinan Uğurlu

Hectopat
Katılım
30 Mayıs 2018
Mesajlar
371
Çözümler
3
Yer
Datacenter
İ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.
 

SypeR

Gigapat
Katılım
6 Ekim 2013
Mesajlar
12.808
Makaleler
43
Çözümler
97
Yer
Sakarya
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.
 

roser137

Hectopat
Katılım
25 Aralık 2015
Mesajlar
213
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.
 

Yeni konular

Yukarı