gpt4 book ai didi

asp.net-mvc-5 - 如何配置用户上下文/表?

转载 作者:行者123 更新时间:2023-12-04 20:10:53 24 4
gpt4 key购买 nike

发布新的 ASP.NET MVC 5 预览版后,如何配置用户上下文/表?

在 MVC 4 中,我只使用我自己的 User 类,然后将 WebSecurity 初始化指向它,如下所示:

WebSecurity.InitializeDatabaseConnection(connectionString, "System.Data.SqlClient", userTableName, userIdColumn, userNameColumn, autoCreateTables);

我希望向用户类添加其他属性 - 如何?

最佳答案

我认为,这可以解决您的问题:

模型\IdentityModels.cs 您可以重新定义自己的 User 模型:

public class ApplicationUser : IdentityUser
{
/* identity field from database */
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }

[Required]
public bool Internal { get; set; }

public string UserFullName { get; set; }

public string UserEmail { get; set; }

public ApplicationUser()
: base()
{
Internal = false;
}

public ApplicationUser(string userName)
: base(userName)
{
Internal = false;
}

}

现在您可以使用 更改默认 AspNet 表的映射OnModelCreating() 覆盖和 ToTable() 方法:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

// Change the name of the table to be Users instead of AspNetUsers
modelBuilder.Entity<IdentityUser>().ToTable("User");
modelBuilder.Entity<ApplicationUser>().ToTable("User");

modelBuilder.Entity<IdentityRole>().ToTable("Role");
modelBuilder.Entity<IdentityUserClaim>().ToTable("User_Claim");
modelBuilder.Entity<IdentityUserLogin>().ToTable("User_Login");
modelBuilder.Entity<IdentityUserRole>().ToTable("User_Role");
}
}

最后,您将在数据库中看到以下表格:
用户、角色、User_Role、User_Claim、User_Login 而不是 AspNetUsers、AspNetRoles、AspNetUsersRoles、AspNetUsersClaims、AspNetUserLogins。

当然是 用户 表将包含附加字段: 用户 ID (int 身份), 内部 , 用户全名 用户邮箱 .

关于asp.net-mvc-5 - 如何配置用户上下文/表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com