我创建了一个新的ASP.NET Core 3.1 MVC项目,该项目具有“个人用户帐户”身份验证。
如果我运行该应用程序,然后单击导航栏中的“注册”链接,它将重定向到:https://localhost:44337/Identity/Account/Register
。
但是,没有名为“ Identity”或“ Account”的控制器,也没有名为“ Register”的操作。我也找不到代表用户帐户的“模型”。因此,它们似乎位于ASP.NET Core源代码中的某个位置。
所以,这是具体问题:
注册新用户时,默认模板直接在数据库上运行。如何制作“假”类以避免在开发过程中对数据库进行操作,并在以后轻松地恢复使用数据库?
如何修改登录和注册视图?没有“ Login.cshtml”或“ Register.cshtml”或任何此类内容。
如何扩展用户模型功能,例如在“出生日期”中添加字段?
答案 0 :(得分:2)
您提到的默认页面是“内置”的。如果要覆盖它们,则需要在要覆盖的页面上运行脚手架。
要添加脚手架页面,请右键单击项目/新的脚手架项目/标识/添加,您将获得此
勾选要覆盖的页面,它将为您生成它们的源代码。
运行迁移时,使用.HasData在数据库中创建种子条目,如here
modelBuilder.Entity<Post>().OwnsOne(p => p.AuthorName).HasData(
new { PostId = 1, First = "Andriy", Last = "Svyryd" },
new { PostId = 2, First = "Diego", Last = "Vega" });
答案 1 :(得分:1)
关于问题3,您可以创建自己的用户类,该类从IdentityUser扩展:
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
然后在您的ApplicationDbContext.cs中注册它:
public DbSet<ApplicationUser> Users { get; set; }
答案 2 :(得分:0)
您需要该类cshtml文件全部存在的检查区域文件夹。