我正在尝试为我的MVC 5 Identity 2.0项目实现基于角色的安全性。 我一直在看互联网上的一些教程,但有点卡住了。如何将IdentityRole扩展为自定义表名
我创建了以下内容:
public class Role : IdentityRole
{
public Role(string name) : base(name)
{ }
public Role()
{ }
public string Description { get; set; }
public string MenuIcon { get; set; }
public string ControllerName { get; set; }
public string ActionName { get; set; }
}
和我的背景:
new public DbSet<Role> Roles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
//rename the tables and columns used by the Identity Framework
modelBuilder.Entity<User>().ToTable("User");
modelBuilder.Entity<Role>().ToTable("Role");
modelBuilder.Entity<UserRole>().ToTable("UserRole");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin");
modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim");
}
和我种方法:
RoleManager roleManager = new RoleManager(new RoleStore<Role>(context));
roleManager.Create<Role, string>(new Role("Orders"));
然而,当我运行应用程序,它会创建具有两个表的角色的数据库:Role
(这是我希望角色存在的地方,我吨包含我的自定义属性)和AspNetRoles
。它确实使用我在Seed方法中创建的角色来填充这两个表。
我在做什么错,确切地说它是创建2个表?
我有类似的问题。你终于到了解决方案? – 2015-08-13 18:49:54