ASP.NET Core MVC'de Oturum Yönetimi (Session Management)

A

Web Uygulamalarında Oturumların Önemi

Oturumlar, belirli bir süre boyunca birden fazla istek arasında kullanıcıya özgü verilerin korunmasını sağlayarak, bu boşluğu kapatır.

  • Kullanıcı Kimliğinin Korunması: Oturumlar, kullanıcı kimlik doğrulama ve yetkilendirme süreçlerinde kritik rol oynar. Web uygulamalarının, farklı etkileşimler boyunca kullanıcıları tanımlamasına ve takip etmesine olanak tanıyarak, kısıtlı kaynaklara güvenli erişim sağlarlar.

  • Kişiselleştirilmiş Kullanıcı Deneyimi: Oturumlar, kullanıcı tercihlerini, ayarlarını ve gezinme geçmişini saklayarak kullanıcı deneyimlerinin kişiselleştirilmesini kolaylaştırır. Bu sayede uygulamalar, bireysel kullanıcı profillerine göre içerik ve işlevsellik sunabilir.

  • Alışveriş Sepetleri ve E-Ticaret: E-ticaret uygulamalarında oturumlar, alışveriş sepetlerini yönetmek ve sipariş işlemlerini gerçekleştirmek için vazgeçilmezdir. Oturumlar sayesinde, sayfa geçişleri sırasında sepet içeriği ve kullanıcı seçimleri korunur; böylece alışveriş süreci kolaylaşır ve kullanıcıların rahatlığı artırılır.

  • Form Verilerinin Korunması: Oturumlar, kullanıcılar tarafından girilen form verilerinin korunmasını sağlar ve gezinme ya da gönderim hataları sırasında veri kaybını önler. Bu, kesintisiz ve sorunsuz bir form doldurma deneyimi sunar.

  • Kullanıcı Aktivitesinin Takibi: Oturumlar, sayfa görüntülemeleri, etkileşimler ve oturum süresi gibi kullanıcı oturum verilerini saklayarak, web analitiği ve izleme mekanizmalarını destekler. Bu bilgiler, kullanıcı davranışlarını anlamaya ve web sitesinin performansını optimize etmeye yardımcı olur.

ASP.NET Core MVC'de Oturum Yönetimini Uygulama

  1. Yeni Bir ASP.NET Core MVC Projesi Oluşturma
    İlk olarak, Visual Studio ya da .NET CLI kullanarak yeni bir ASP.NET Core MVC projesi oluşturun.

  2. Gerekli Paketleri Yükleme
    Oturum yönetimi için gerekli paketleri NuGet Paket Yöneticisi veya .NET CLI kullanarak yükleyin. Bu örnekte, Microsoft.AspNetCore.Session paketine ihtiyacımız olacak.

  3. Servisleri Yapılandırma
    Startup sınıfının ConfigureServices yönteminde, oturum servislerini eklemek için services.AddSession() metodunu kullanın.

  4. Ara Katmanı Yapılandırma
    Startup sınıfının Configure yönteminde, oturum ara katmanını kullanmak için app.UseSession() metodunu çağırın.

Controller Oluşturma

Uygulamanızın mantığını işlemek için kontrolörler oluşturun. Bu örnekte, HomeController ve RecordsController kullanacağız.

Aşağıda, oturum içine veri eklemek için bir Index eylem yöntemi olan HomeController oluşturulmuştur.

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;

    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        // Oturuma kaydedilecek kayıtlar listesi
        var records = new List<Record>
        {
            new Record { Id = 1, Name = "Kayıt 1" },
            new Record { Id = 2, Name = "Kayıt 2" },
            // Gerekirse buraya daha fazla kayıt ekleyin
        };

        // Kayıtları serileştir ve oturuma kaydet
        var serializedRecords = JsonSerializer.Serialize(records);
        HttpContext.Session.SetString("Records", serializedRecords);
        return RedirectToAction("GetRecords", "Records");
    }
}

Veriyi Oturumda Saklama

Bir kontrolör eyleminizde (örneğin, HomeController'ın Index eylemi), oturumda tutmak istediğiniz veriyi saklayın. Karmaşık türleri (örneğin listeleri) saklamadan önce dizelere veya byte dizilerine dönüştürün.

Bu örnekte, veriyi şu şekilde oturumda sakladık:

var serializedRecords = JsonSerializer.Serialize(records);

Oturumdan Veri Alma

Başka bir kontrolör eyleminde (örneğin, RecordsController'ın GetRecords eyleminde), oturumdan veriyi alın. Gerektiğinde saklanan veriyi orijinal türüne geri döndürün.

Aşağıda, oturumdan veri almayı sağlayan bir GetRecords eylemi örneği verilmiştir:

public class RecordsController : Controller
{
    public IActionResult GetRecords()
    {
        // Oturumdan kayıt listesini alın
        var records = HttpContext.Session.Get<List<Record>>("Records");
        return View(records);
    }
}

Özet

Oturum yönetimi, web geliştirme sürecinde temel bir konudur ve geliştiricilerin etkileşimli, kişiselleştirilmiş ve güvenli web uygulamaları oluşturmasına olanak tanır.

By Aydın Yağız

Aydın Yağız

Teknolojiye olan tutkumla inovasyonu destekler, kullanıcı deneyimini önceliklerim arasına alırım. Kendi yeteneklerimi ve bilgilerimi paylaşarak, daha geniş bir topluluğun faydalanmasını sağlarım. İş birliği içinde hareket ederek, geleceğin teknoloji dünyasına katkıda bulunmayı hedeflerim. Sizi de bu heyecan verici yolculuğa davet ediyor, fikirlerinizi paylaşmaya ve teknolojiye dair sınırları zorlamaya teşvik ediyorum. Birlikte büyüyelim ve yeni ufuklara açılalım!

İletişime Geçin

Kodlama dünyasına adım atın ve deneyimlerinizi paylaşın. Siz de bu aktif topluluğa katılarak yeni bağlantılar kurun, fikir alışverişinde bulunun ve bilgi birikiminizi artırın.

Özelleştir

Farklı yazı tipleri ve renk seçenekleriyle stilinizi kişiselleştirin. Aşağıdaki örneklerden birini deneyerek sizin için en uygun olanı seçin.

Yazı Tipi Örnekleri

Renk Örnekleri