作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ASP.NET Core 2.x 现在隐藏了库中的标识页面和逻辑。为了延长IdentityUser
具有新属性的实体并添加 UI 和逻辑来处理这些新属性,我们现在可以运行“身份脚手架”(在 MyProject -> Add -> New scaffolded item 下)。不幸的是,the docs充其量是不完整的,并且在很多情况下,完全错误。
我正在努力弄清楚如何解决脚手架和生成的代码来实现我认为是一个非常标准的用例:
IdentityUser
用我自己的属性。由于这涉及创建一个继承类,我希望该新类的名称为 ApplicationUser
. ApplicationDbContext
IdentityUser
并继续使用现有的
ApplicationDbContext
.
最佳答案
后盯着the docs玩弄脚手架和生成的代码,我想我已经弄清楚了大部分。
ApplicationDbContext
. ApplicationDbContext
ApplicationDbContext
和
IdentityUser
类。现在,您可以扩展
IdentityUser
并连接身份页面以使用新的扩展实体:
ApplicationUser
继承自
IdentityUser
的类:
public class ApplicationUser : IdentityUser
{
public string Nickname { get; set; }
}
ApplicationUser
实体到
ApplicationDbContext
类(class):
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<ApplicationUser> AppUsers { get; set; }
}
<IdentityUser>
的所有实例与
<ApplicationUser>
.这意味着您将更改 startup.cs 以调用
services.AddDefaultIdentity<ApplicationUser>()
,您将替换对
SigninManager
的所有引用和
UserManager
指定新
<ApplicationUser>
类型参数。
ApplicationUser
而不是
IdentityUser
,所有管道都将连接到
ApplicationUser
.例如,Register.cshtml.cs 中的代码可能如下所示:
var user = new ApplicationUser {
UserName = Input.Email,
Email = Input.Email,
Nickname = Input.Nickname // New property
};
var result = await _userManager.CreateAsync(user, Input.Password);
关于asp.net-core - 带有 AppplicationDbContext 的身份脚手架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51351327/
ASP.NET Core 2.x 现在隐藏了库中的标识页面和逻辑。为了延长IdentityUser具有新属性的实体并添加 UI 和逻辑来处理这些新属性,我们现在可以运行“身份脚手架”(在 MyProj
我是一名优秀的程序员,十分优秀!