c# - ASP.NET Core 3.1 默认身份验证如何工作?
问题描述
我创建了一个带有“个人用户帐户”身份验证的新 ASP.NET Core 3.1 MVC 项目。
如果我运行该应用程序,然后单击导航栏中的“注册”链接,它会重定向到:https://localhost:44337/Identity/Account/Register
.
但是,没有称为“身份”或“帐户”的控制器,也没有称为“注册”的操作。我也找不到代表用户帐户的“模型”。因此,它们似乎位于 ASP.NET Core 源代码中的某个位置。
所以,这里有一些具体的问题:
注册新用户时,默认模板直接对数据库进行操作。如何制作一个“假”类以避免在开发时对数据库进行操作,并在以后轻松恢复使用数据库?
如何修改登录和注册视图?没有“Login.cshtml”或“Register.cshtml”或任何类似的东西。
如何扩展用户模型功能,例如在“出生日期”中添加字段?
解决方案
您提到的默认页面是“内置”的。如果要覆盖它们,则需要在要覆盖的页面上运行脚手架。
要添加脚手架页面,右键单击项目/新脚手架项目/身份/添加,你会得到这个
勾选您要覆盖的页面,它将为您生成它们作为源代码。
运行迁移时,使用 .HasData 在数据库中创建种子条目,如下所示
modelBuilder.Entity<Post>().OwnsOne(p => p.AuthorName).HasData(
new { PostId = 1, First = "Andriy", Last = "Svyryd" },
new { PostId = 2, First = "Diego", Last = "Vega" });
推荐阅读
- hyperledger-fabric - 哪个好的consesus引擎Raft或Kafka
- java - 如何检查文本文件中是否存在单词
- hook - 如何从 MediaWiki SearchAfterNoDirectMatch 挂钩返回文本?
- javascript - 使用类更改单击时的背景颜色
- python-3.x - python 中的 setup.py 显示“ModuleNotFoundError: No module named”尽管它存在并且存在
- asp.net-core - 如何使用 identityserver4 和 asp.netcore 身份进行用户管理
- python - 使用 Python 或 pandas 使用数据集替换另一个数据集中的值
- java - OVERPASS API 中的缩放级别和经纬度之间有什么关系吗?
- javascript - 在 JS 派生类的构造函数中使用 super() 感到困惑
- java - Java 独占全屏模式不断抛出“无效显示模式”