c# Web

Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama2

Şimdi veritabanı ve kimlik doğrulama (authentication & authorization) sistemini kurarak devam edelim. Böylece yönetici, öğretmen ve öğrenci rolleri olan bir sistem oluşturabiliriz.

Veritabanı ve Kimlik Doğrulama Kurulumu

Projeye ASP.NET Identity ve Entity Framework Core ekleyerek kullanıcı yönetimi ve roller oluşturacağız.

Entity Framework Core ve Identity Paketlerini Yükleyelim

Visual Studio'da Tools > NuGet Package Manager > Manage NuGet Packages for Solution seçeneğinden şu paketleri yükleyelim:

Gerekli NuGet Paketleri

Komut satırından da yükleyebilirsin:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Tools

Veritabanı Bağlantısını Ayarlayalım

appsettings.json dosyasına veritabanı bağlantısını ekleyelim:

"ConnectionStrings": {
  "DefaultConnection": "Server=aaa;Database=hizmetler;User ID=bbb;Password=ccc;Trusted_Connection=False;Encrypt=False;"
},

Veritabanı Modellerini ve Kimlik Sistemini Tanımlama

Models klasörü içinde ApplicationUser.cs adında bir dosya oluşturalım ve ASP.NET Identity ile genişletelim:

using Microsoft.AspNetCore.Identity;

namespace SchoolManagement.Models
{
    public class ApplicationUser : IdentityUser
    {
        public string? FullName { get; set; }
    }
}

DbContext Sınıfını Tanımlama

Projeye Data isminide bir klasör ekleyelim. Data klasörü içinde ApplicationDbContext.cs adında bir dosya oluşturup veritabanı yapılandırmasını yapalım:

using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using SchoolManagement.Models;

namespace SchoolManagement.Data
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
        {
        }
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            // Sabit GUID değerleri
            string adminRoleId = "b9d7cb1f-1b53-4e97-b8b9-2f0db9d29f20"; // Sabit GUID
            string teacherRoleId = "e78b3f3e-2336-4236-b66f-cd14d5b9d97e"; // Sabit GUID
            string studentRoleId = "a76c7d1d-9b59-47c9-b913-0352672e7e55"; // Sabit GUID

            builder.Entity<IdentityRole>().HasData(
                new IdentityRole { Id = adminRoleId, Name = "Admin", NormalizedName = "ADMIN" },
                new IdentityRole { Id = teacherRoleId, Name = "Teacher", NormalizedName = "TEACHER" },
                new IdentityRole { Id = studentRoleId, Name = "Student", NormalizedName = "STUDENT" }
            );
        }
    }
}

Bağlantıyı Program.cs Dosyasında Yapılandırma

Program.cs dosyanızı şu şekilde güncelleyin:

using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using SchoolManagement.Data;
using SchoolManagement.Models;

var builder = WebApplication.CreateBuilder(args);

// Veritabanı bağlantısını ekle
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

// Kimlik doğrulama servisini ekle
builder.Services.AddIdentity<ApplicationUser, IdentityRole>()
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();

builder.Services.AddControllersWithViews();

var app = builder.Build();

// Kimlik doğrulama ve yetkilendirme işlemleri
app.UseAuthentication();
app.UseAuthorization();

app.UseDeveloperExceptionPage();
app.UseStatusCodePages();
app.UseDefaultFiles();
app.UseStaticFiles();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}"
    );

app.Run();

Veritabanını Oluşturma

PMC'de aşağıdaki komutları çalıştırarak veritabanını oluşturun:

dotnet ef migrations add InitialCreate

dotnet ef database update

Bu işlem SchoolManagement veritabanını oluşturacak ve AspNetRoles, AspNetUsers gibi Identity tablolarını ekleyecektir. Ayrıca AspNetRoles tablosuna Admin, Teacher, Student rolleri eklenecektir.

 


İlgili Makaleler
2020 TYT Matematik Ortakatlı Kuralıyla İlgili Sorunun Çözümünü c# Diliyle Web Form Sayfasında Kodlama
Visual Studio 2022 Programında Asp.Net Web Application Şablonu Görünmüyor Hatasını Düzeltme
Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama9
Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama16
Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama11
Web Uygulamalarında Bilgisayarın İnternete Bağlı Olup Olmadığını Kontrol Etme
Klavyeden Girilen İki Sayıyı Toplayan Programı Visual Studio 2022 Programında Web Sayfası Olarak Kodlayınız
Öğrencilere Ait Performans ve Uygulama Notlarının Girildiği Core Mvc Projesi Tasarlama17
Kullanıcının Kullandığı Bilgisayarda Yazıcı İsimlerini Listeleme
İlk Üç Karakteri Harf Daha Sonraki Karakterler Sayı Olan Metin Girişini Jquery İle Kodlayınız
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosunu Oluşturma
Core Mvc Projesinde Otomobil Satışı Yapan Web Projesini Tasarlama2
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama7
Visual Studio 2022 Programında Asp.Net Core Empty RazorPage Web Projesi Oluşturma
Web Uygulamalarında SqLite Veritabanında Uyeler Tablosuna Kayıt Girişi Yapma
Personele Ait Boy ve Kilo Bilgilerine Göre İdeal Kiloyu Bulan Uygulamayı Asp.Net İle Yapınız
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama2
Core Mvc Projesinde SqlServer Kullanarak Üye Takibi Yapan Web Projesini Tasarlama6
2024 TYT Matematik Birinci Sorunun Çözümünü c# Diliyle Web Sayfasında Kodlama
Core Mvc Projesinde Otomobil Satışı Yapan Web Projesini Tasarlama8

Yorum Ekle
   
Kötü İyi