我对创建注册表格感到很困惑。我正在建立一个购物车网站,我希望用户在我的网站上注册。为此我在我的数据库中有用户表,也是一个管理表。当我使用内置的mvc模板创建新项目时,它提供的控制器(真的很棒)使用自己的数据库。
1)我想将注册的用户信息存储在我的数据库中,并且不使用默认的DB Context登录它们 2)我有2个表(用户,管理员)现在如何在两个表上使用角色管理器?我应该将Admin的表ID放在自动创建的表(aspnetroles,aspnetcalims,aspnetuserroles)中,还是应该只创建一个名为USERS的表并管理角色?
抱歉我的英语。答案 0 :(得分:1)
您可以为所有用户使用默认用户表,因为您有角色可以区分它们。为管理员角色的用户创建另一个表只会添加几乎相同的表来维护。
如果您想使用自己的数据库上下文,可以从IdentityDbContext<TUser>
或IdentityDbContext<TUser, TRole, TKey, TUserLogin, TUserRole, TUserClaim>
而不是DbContext
派生,然后将其用于身份验证。
您可以通过扩展它的实体类(如IdentityUser)来进一步自定义ASP.NET Identity模式。
class MyUser : IdentityUser
{
public string MyColumn { get; set; }
}
为了获得更多控制,您可以扩展IdentityUser<TKey, TLogin, TRole, TClaim>
以指定除字符串(uniqueidentifier)以外的键的类型,角色的自定义实体等。
您可以通过覆盖数据库上下文的OnModelCreating
并使用DbModelBuilder
将默认身份实体映射到自定义表,就像使用Fluent API的任何其他EF实体一样。
e.g。
modelBuilder.Entity<ApplicationUser>().ToTable("MyUsers");
ASP.NET Identity可以自定义。如果您熟悉Entity Framework,则不应该有任何扩展问题。