使用实体框架核心将数据与默认ASP.NET UAM用户相关联



尝试创建一个具有基本用户帐户管理带有社交帐户注册的简单MVC应用程序。

创建了具有单个身份验证的ASP.NET Core 2.2应用程序,通过Nuget(SQLServer和Tools)添加了EF Core。我以前已经用其他语言构建了一些基本的ASP.NET MVC应用程序和MVC应用程序。

根据本教程,我获得了Facebook登录工作。

现在我迷路了。

已经有一个"数据"目录,其中已经有很多代码,还有普通的MVC目录。但是,我看不到将与帐户管理相关的任何页面或操作相关的MVC文件,我可以在启动应用程序时可以清楚地访问,包括/Identity/Account/Login/Identity/Account/Manage/Identity/Account/Manage/SetPassword等。

尽管将所有这些功能启动并在几分钟内运行都很酷,但我已经不知道它是如何或原因的。搜索我期望的任何东西都可以阐明这一点,这使我的技术文档使我的头部旋转并提供零启蒙。

我想拥有与每个用户关联的数据集("书")集合。一个用户是许多书籍。鉴于用户(帐户?)模型不在MVC应用程序的模型目录中,我认为这是不应该添加的位置。如果是这样,我不知道如何与用户建立这种关联。

这就是我在一个称为 ApplicationDbContextModelSnapshot.cs

的文件中看到的
namespace Bookshelf.Data.Migrations
    [DbContext(typeof(ApplicationDbContext))]
    partial class ApplicationDbContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
        ...
        modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
            {
                b.Property<string>("Id")
                    .ValueGeneratedOnAdd();
                b.Property<string>("ConcurrencyStamp")
                    .IsConcurrencyToken();
                b.Property<string>("Name")
                    .HasMaxLength(256);
                b.Property<string>("NormalizedName")
                    .HasMaxLength(256);
                b.HasKey("Id");
                b.HasIndex("NormalizedName")
                    .IsUnique()
                    .HasName("RoleNameIndex")
                    .HasFilter("[NormalizedName] IS NOT NULL");
                b.ToTable("AspNetRoles");
            });

...等等,看起来相当可读,但与我到目前为止见过的任何教程都不匹配。

tl; dr:

我在哪里/如何正确创建新型号?是在模型目录中(我习惯的)还是过时的?

无论哪种方式,我如何将数据正确关联到给定为ASP.NET Core 2.2的用户帐户管理的用户?

已经有一个"数据"目录,其中已经有很多代码,还有普通的MVC目录。但是,我看不到与与帐户管理相关的任何页面或操作相关的MVC文件,我可以在启动应用程序时可以清楚地访问,包括/IDENDITY/account/login,/sidentity/account/account/Manage,/Identity/account/manage/setPassword等

这是因为从ASP.NET Core 2.1身份提供了带有ASP.NET Core Project模板的Razor类库。如果您想查看这些与身份相关的代码并自定义,则必须在项目中脚手架身份。

这是有关以下详细信息的更多详细信息:ASP.NET Core Projects中的脚手架身份

此外,如果您需要MVC格式的ASP.NET核心身份,则这是我的GitHub存储库,在该存储库中剃须刀页面身份已转换为ASP.NET Core 2.2中的MVC。

最新更新