Merhaba arkadaşlar, bu yazımda sizlere .Net Core Session Kullanımı konusundan bahsedeceğim.
Session, bir uygulama içerisinde bizim belirlediğimiz bilgileri, belirlenen süre kapsamında anlık olarak tutmaya ve bu tutulan veriye erişmemizi sağlayan yapıdır. Session’lar server tarafında tutulmaktadır. Örneğin uygulamamızda kullanıcı girişi işlemi sağlıyoruz ve başarılı bir şekilde giriş yapıldıysa, kullanıcının ismini Session içerisinde tutabiliriz ve uygulamada gerekli sayfalarımızda bu Session değerine erişim sağlayarak işlemler yaptırabilir ya da gösterim sağlayabiliriz.
Hemen örneğimize geçelim.
.Net Core 6 ile yeni bir web projesi oluşturuyoruz. Oluşturduktan sonra Session kullanımını gerçekleştireceğiz fakat .Net Core ile Session kullanımını sağlayabilmemiz için öncelikle Program.cs dosyamızda Session middleware’ini eklememiz gerekmektedir.
Aşağıdaki iki satırı Program.cs dosyamıza ekliyoruz.
builder.Services.AddSession();
app.UseSession();
Session kullanımı için Program.cs içerisinde gerekli işlemlerimizi yaptık. Şimdi ise Controller tarafında Session atamasını gerçekleştirelim ve sonrasında da bir başka sayfada bu Session bilgisini çekerek gösterimini sağlayalım.
Aşağıdaki kod ile yeni bir Session oluşturarak bir değer ataması gerçekleştiriyoruz.
HttpContext.Session.SetString("username","alican");
SetString ile username key’i belirterek bir session oluşturduk ve değerine de alican ataması yaptık. Belirttiğimizi bu key değeri ile de okuma işlemi gerçekleştireceğiz.
HttpContext.Session.GetString("username");
GetSetring metodu ile de key değerimizi belirterek Session değerimizi okumuş olduk.
Session değerimize eğer bir nesne ataması yapmak istiyorsak nasıl bir yol izleyebiliriz ondan bahsetmek istiyorum.
Nesnemizi, Serialize metodunu kullanarak aşağıdaki gibi kullanım sağlayarak JSON string olarak oluşturuyoruz.
public class AppUser
{
public int Id { get; set; }
public string Username { get; set; }
}
AppUser nesnemizi oluşturuyoruz. Sonra da controller tarafında aşağıdaki gibi atama işlemi gerçekleştiriyoruz.
AppUser appUser = new AppUser() { Id = 1, Username = "alican" };
string appUserJson = JsonSerializer.Serialize<AppUser>(appUser);
HttpContext.Session.SetString("user", appUserJson);
Yukarıdaki Session atama işlemini yaptıktan sonra da okuma işlemini sağlıyoruz.
var appUserJson = HttpContext.Session.GetString("user");
var appUser = JsonSerializer.Deserialize<AppUser>(appUserJson);
Atama işlemi yaparken Serialize metodumuzu kullanmıştık. Şimdi de Deserialize metodumuzu kullanarak jsonString değerini AppUser nesnemize çevirme işlemi gerçekleştiriyoruz. Bu işlemlerden sonra da nesnemizi kullanarak gösterim sağlayabiliriz.
Umarım faydalı olur.
Bir sonraki yazıda görüşmek üzere…