Asp.Net Core Identity Özelleştirme
Asp.Net Core da Identity tablo ve alan isimlerini değiştirmek ve yeni alanlar ekleme işlemlerinin nasıl yapıldığını göreceğiz.
Boş bir Asp.Net Core 2.2 Projesi açalım.
Model klasörü ekleyelim ve içine aşağıdaki resimdeki sınıflarımızı oluşturalım.
Oluşturduğumuz sınıfların içlerini aşağıdaki gibi düzenleyelim.
ApplicationUser sınıfına Address isimli yeni bir alan ekleyerek özelleştiriyoruz.
appsettings.json dosyasında ConnectionString oluşturalım.
code first migration işlemlerini yapalım.
PM> add-migration "Olustur"
PM> update-database
Veritabanı görüntüsü
Başka bir yazıda görüşmek üzere.
Uygulama kodları AspNetCoreIdentityCustomize
Boş bir Asp.Net Core 2.2 Projesi açalım.
Model klasörü ekleyelim ve içine aşağıdaki resimdeki sınıflarımızı oluşturalım.
Oluşturduğumuz sınıfların içlerini aşağıdaki gibi düzenleyelim.
ApplicationUser sınıfına Address isimli yeni bir alan ekleyerek özelleştiriyoruz.
public class ApplicationUser:IdentityUser<string>
{
public string Address { get; set; } // Yeni Address alanı ekliyoruz.
}
public class ApplicationRole:IdentityRole<string>
{
}
public class ApplicationUserClaim :
IdentityUserClaim<string>
{
}
public class ApplicationUserRole:IdentityUserRole<string>
{
}
public class ApplicationUserLogin:IdentityUserLogin<string>
{
}
public class ApplicationRoleClaim:IdentityRoleClaim<string>
{
}
public class ApplicationUserToken:IdentityUserToken<string>
{
}
Şimdi Data adında klasör oluşturup içine DataContex oluşturalım.
ApplicationDbContex Sınıfını düzenleyelim. Burada dikkat edilmesi gereken yer,
ApplicationDbContext sınıfı IdentityDbContext sınıfını miras alırken düzenlemek istediğimiz tüm sınıfları ekliyoruz. Daha sonra OnModelCreating Metodunda tablo isimlerini ve bir kaç alan ismini değiştirelim.
public class ApplicationDbContext:IdentityDbContext<ApplicationUser,ApplicationRole,
string,ApplicationUserClaim,ApplicationUserRole,ApplicationUserLogin,
ApplicationRoleClaim,ApplicationUserToken>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
:base(options)
{
}
protected override void
OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<ApplicationUser>().ToTable("User", "identity")
.Property(p=>p.Id).HasColumnName("UserId");
builder.Entity<ApplicationRole>().ToTable("Role", "identity")
.Property(p=>p.Id).HasColumnName("RolId");
builder.Entity<ApplicationUserRole>().ToTable("UserRole", "identity");
builder.Entity<ApplicationUserClaim>().ToTable("UserClaims", "identity");
builder.Entity<ApplicationRoleClaim>().ToTable("RoleClaims", "identity");
builder.Entity<ApplicationUserLogin>().ToTable("LoginData", "identity");
builder.Entity<ApplicationUserToken>().ToTable("UserToken", "identity");
}
}
appsettings.json dosyasında ConnectionString oluşturalım.
"ConnectionStrings": {
"ApplicationDbContext": "data
source=.; initial catalog=IdentityDB;
integrated security=true;"
integrated security=true;"
},
Startup.cs dosyasını düzenleyelim.
public class Startup
{
public Startup(IConfiguration
configuration)
{
Configuration = configuration;
}
public IConfiguration
Configuration
{ get; set; }
public void
ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(
options=>options.UseSqlServer(Configuration.GetConnectionString("ApplicationDbContext")));
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();
services.AddMvc();
}
public void Configure(IApplicationBuilder
app,
IHostingEnvironment
env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseStatusCodePages();
}
app.UseAuthentication();
app.UseMvc();
}
}
code first migration işlemlerini yapalım.
PM> add-migration "Olustur"
PM> update-database
Veritabanı görüntüsü
User tablosunda değiştirilen ve eklenen alanlar
Başka bir yazıda görüşmek üzere.
Uygulama kodları AspNetCoreIdentityCustomize
Aynısını webformları ile yapabilirmiyiz hocam
YanıtlaSil