ASP .NET Core 2 ile birlikte kullanılan Identity; üye işlemlerini, login (giriş), out (çıkış), token üretme, şifre sıfırlama vb. tüm işlemleri hızlı ve kolay bir şekilde gerçekleştiren üyelik sistemidir.
ASP .NET CORE 2 kullanıyor ve üyelik sisteminin daha önce kurgulamadıysanız, çok fazla bilginiz yok ise, kolayca sistemime üyelik entegrasyonu yapmak istiyorum derseniz kullanın, kullandırın. Zira ihtiyacınız olan her şey düşünülmüş ve sizin de geliştirebilmeniz sağlanmış. ASP .NET Core 2 Identity nasıl kullanılır? .Net Core 2 Identity neden kullanılır? .Net Core 2 projeme Identity entagrasyonunu nasıl yaparım? gibi sorularınız için aşağıdaki linke tıklayarak ilgili yazıları okuyabilirsiniz. Ayrıca diğer yazılara da bakmanızı tavsiye ederim.
Asp.NET Core Identity – Nedir ve Temel Kavramlar? Gençay Yıldız
Asp .NET Core 2 Identity Tablo İsimlerini Değiştirme
Identity kullanarak oluşturulan tabloların isimlerini değiştirmek oldukça kolay. Bu işlem için context class’ınızı kullanmanız gerekiyor. Aşağıdaki kod bloğunu inceleyerek bu işlemi gerçekleştirebilirsiniz.
public class ApiDatabaseContext : IdentityDbContext, Guid>
{
public ApiDatabaseContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity(entity =>
{
entity.ToTable(name: "aspnetusers");
});
builder.Entity(entity =>
{
entity.ToTable(name: "aspnetroles");
});
builder.Entity>(entity =>
{
entity.ToTable("aspnetuserroles");
});
builder.Entity>(entity =>
{
entity.ToTable("aspnetuserclaims");
});
builder.Entity>(entity =>
{
entity.ToTable("aspnetuserlogins");
});
builder.Entity>(entity =>
{
entity.ToTable("aspnetroleclaims");
});
builder.Entity>(entity =>
{
entity.ToTable("aspnetusertokens");
});
}
}
Burada dikkat etmeniz gereken bir yer var. İsimlendirme yapmadan önce primary key türünüze göre düzenleme yapmanız gerekiyor. Benim kullandığım tablolarda primary key Guid olduğu için, türünü Guid olarak belirttim. Bu alan konfigurasyonunuza göre string veya int olabilir.
String türünde bir primary key‘e sahipseniz kullanmanız gereken yapı aşağıdaki şekilde olmalıdır.
builder.Entity>(entity =>
{
entity.ToTable("aspnetusertokens");
});