Foundations·15 Feb 2021·3 min read·Güncellendi: 15 Jul 2026

.NET Core Identity Kullanımı

.NET Core Identity, geliştirdiğiniz uygulamaya kayıt olma, kimlik doğrulama ve yetkilendirme gibi işlevleri kazandıran bir üyelik sistemidir. Bu yazıda .NET Core Identity'nin bir projeye adım adım nasıl ekleneceğini inceliyoruz.

.NET Core Identity Kullanımı

.NET Core Identity Nedir

.NET Core Identity, geliştirdiğimiz uygulamaya kayıt olma, kimlik doğrulama (authentication) ve yetkilendirme (authorization) gibi işlevleri kazandıran ve bu bilgileri MSSQL, PostgreSQL, MySQL gibi veritabanlarında saklayan bir üyelik sistemidir. Kullanıcılar isterlerse üçüncü taraf sistemler (Facebook, Google, Twitter vb.) üzerinden de kayıt olup kimlik doğrulaması yapabilirler.


.NET Core Identity Nasıl Kullanılır

İlk olarak aşağıdaki komut ile bir .NET Core MVC projesi oluşturuyoruz.

dotnet new mvc --name IdentityApp

Gerekli Paketlerin Kurulumu

Daha sonra .NET Core Identity'yi projemizde kullanabilmemiz için gerekli olan Nuget paketlerini ekliyoruz.

dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design

dotnet add package Microsoft.EntityFrameworkCore.Design

dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore

dotnet add package Microsoft.AspNetCore.Identity.UI

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

dotnet add package Microsoft.EntityFrameworkCore.Tools

Nuget paketlerini ekledikten sonra proje dosyamızın görünümü


.NET Core Identity ile hazır olarak gelen Account Register - Account Login vb. sayfaları projemiz içerisinde oluşturmak ve düzenleme yapmak için ihtiyaç duyacağımız CodeGenerator aracını global olarak kuruyoruz.

dotnet tool install -g dotnet-aspnet-codegenerator

Daha sonra Identity ile hazır olarak gelen sayfaları projemizin okuyabilmesi için useDefaultUI komutunu çalıştırıyoruz.

dotnet aspnet-codegenerator identity --useDefaultUI


Veritabanı Bağlantısı ve Startup Dosyasının Düzenlenmesi

useDefaultUI komutunu kullandıktan sonra appsettings.json içerisinde ConnectionString oluşturulduğunu görüyoruz.

Veritabanı olarak PostgreSQL kullanacağımız için ConnectionString'i değiştirmemiz gerekiyor.



Sonrasında PostgreSQL kullanabilmemiz için gerekli olan Nuget paketini kuruyoruz.

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Paket kurulumundan sonra Startup.cs içindeki ConfigureServices ve Configure metoduna bazı eklemeler yapmamız gerekiyor.

ConfigureService

services.AddDbContext<IdentityAppIdentityDbContext>(options => options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

services.AddDefaultIdentity<IdentityUser>().AddEntityFrameworkStores<IdentityAppIdentityDbContext>();

services.AddRazorPages();

Configure

app.UseAuthentication();

endpoints.MapRazorPages();

Startup.cs dosyasının görünümü


Startup.cs içerisinde veritabanı bağlantısı için gerekli eklemeleri yaptıktan sonra projemiz genelinde tek bir veritabanı kullanacağımız için Identity'ye özel olan IdentityHostingStartup.cs dosyasını siliyoruz.




Sonrasında migration komutlarını kullanarak veritabanımızı oluşturuyoruz.

dotnet ef migrations add CreateIdentityAppDb

dotnet ef database update

.NET Core Identity tarafından oluşturulan tablolar




Identity Sayfalarını Kullanma ve Düzenleme

Register ve Login sayfalarına ulaşabilmek için Views/Shared/_Layout.cshtml dosyamıza <partial name="_LoginPartial"/> satırını ekliyoruz.



Sonrasında dotnet run komutu ile projemizi 5001 portu üzerinden çalıştırıyoruz.



localhost:5001/Identity/Account/Login adresi üzerinden Login sayfasına ulaşabiliyoruz fakat sayfayı düzenlemek için projemiz içerisinde Login sayfasının kodlarını göremiyoruz. Bunun için aspnet-codegenerator aracını dotnet komutu ile beraber çalıştırıp düzenlemek istediğimiz sayfaların kodlarını projemizde oluşturmamız gerekiyor.


dotnet aspnet-codegenerator identity --listFiles

komutu ile projemize ekleyebileceğimiz bütün dosyaları listeleyebiliriz.


Projemize ekleyebileceğimiz dosyalar


Aşağıdaki komutu kullanarak düzenlemek istediğimiz sayfaları projemize ekliyoruz.

dotnet aspnet-codegenerator identity --files "Account.Register;Account.Login;Account.RegisterConfirmation"

Artık Login sayfamızın kodlarını düzenleyebiliyoruz


Bir sonraki makalede Identity için oluşturulan veritabanı tabloları üzerinde ihtiyacımıza göre nasıl düzenleme yapabileceğimizden bahsedeceğiz.

Tagsmfa

Kimlikleri doğru şekilde
yönetmeye hazır mısınız?

Beş dakikadan kısa sürede tam donanımlı bir deneme ortamı kurun. Kredi kartı yok, satış engeli yok.