尝试创建一个具有基本用户帐户管理带有社交帐户注册的简单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。