Visual Studio 2013 AspNet Kimlik kullanırken tablo isimlerini değiştirebilir miyim?
Sürüm Sürüm (RTM, RC Visual Studio 2013 (MSDN 10/18/2013 indirilen) ve AspNet (RTM) son sürümünü bu nedenle kullanıyorum.Kimlik. Yeni bir proje oluşturduğumda, "" kimlik doğrulaması için. tek Tek Kullanıcı Hesaplarını seçin Bu Aşağıdaki tablo oluşturur:
- AspNetRoles
- AspNetUserClaims
- AspNetUserLogins
- AspNetUserRoles
- AspNetUsers
Yeni bir kullanıcı (varsayılan şablon kullanarak) kaydolduktan sonra, bu tablolar (yukarıda listelenen) oluşturulur ve AspNetUsers tablo kayıtlarını içerir: hangi ekledi
- Id
- Kullanıcı adı
- PasswordHash
- SecurityStamp
- Elde edilir
Ayrıca, bu sınıf için ortak özellikler ekleyerek "" başarıyla AspNetUsers tablo için ilave alanları ekledim, "gibi","","", vb. PhoneNumber Soyad Ad ApplicationUser
Benim de bir sorum var. Yukarıdaki tablo ilk oluşturulduğunda () isimlerini değiştirmek için bir yolu yoktur ya da her zaman yukarıda listelenen AspNet öneki adlı olacaklar mı? Eğer tablo isimleri farklı adlandırılmış olabilir, lütfen açıklar mısın? Teşekkür ederim.
-- GÜNCELLEME --
@Hao Kung çözüm uygulanmaktadır. Yeni bir tablo (örneğin MyUsers aradım) oluşturur ama aynı zamanda hala AspNetUsers tablo oluşturur. Amaç" "" tablo. MyUsers ile masa "AspNetUsers değiştirmek için. Ve tablo oluşturulan veritabanı görüntü aşağıdaki kodu bakın.
Aslında Örneğin kendi adı ile her AspNet tablo değiştir şunu söylemek istiyorum: MyRoles, MyUserClaims, MyUserLogins, MyUserRoles, MyUsers.
Bunu gerçekleştirmek ve tabloları yalnızca bir dizi ile sonuna kadar nasıl herhangi bir fikir?
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string PhonePrimary { get; set; }
public string PhoneSecondary { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(): base("DefaultConnection")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("MyUsers");
}
}
-- GÜNCELLEME -- CEVAP
Hao Kung ve Peter hem teşekkürler Stulinski. Bu benim sorunum çözüldü...
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<ApplicationUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<IdentityUserRole>().ToTable("MyUserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("MyUserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("MyUserClaims");
modelBuilder.Entity<IdentityRole>().ToTable("MyRoles");
}
CEVAP
Bu kolayca İdentityModel değiştirerek bunu yapabilirsiniz.aşağıda: cs olarak başına
Senin DbContext sonra aşağıdaki ekleyin OnModelCreating geçersiz kılmak için, bu AspNetUser tablo değişecek "Kullanıcılar ayrıca alan adları varsayılan Kimlik sütunu değiştirebilirsiniz" User_İd olacak.
modelBuilder.Entity<IdentityUser>()
.ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
ya da sadece aşağıdaki tüm standart sütun adları tutmak istiyorsanız:
modelBuilder.Entity<IdentityUser>()
.ToTable("Users", "dbo")
(Bu İdentityModel olmalıdır.aşağıda tam örnek cs dosyası) ben ApplicationUser Dersim Kullanıcı adı olarak değiştirildi.
public class User : IdentityUser
{
public string PasswordOld { get; set; }
public DateTime DateCreated { get; set; }
public bool Activated { get; set; }
public bool UserRole { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<User>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>()
.ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
modelBuilder.Entity<User>()
.ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
}
}
Lütfen geçerli bir tablo varsa bunu çalıştırmayı başardım not. Sen ne pahasına olursa olsun da Not Varsayılan olanları oluşturulur göster.
Bu yardımcı olur umarım.
Nasıl varsayılan kimlik bilgileri Visu...
Visual Studio 2013 içinde benim kullan...
Nasıl hata ayıklamayı son ne zaman IIS...
Visual Studio 2013 Önizleme kapatabili...
Visual Studio 2013 içine MonoGame yükl...