Q:为什么要扩展 IdentityUser?
A:IdentityUser 只包含一些基本属性,很多具体场景下,我们需要保存用户的一些特定属性(如住址、身高等),这时我们就需要扩展 IdentityUser。
步骤
创建 ApplicationUser,增加了 City 属性:
public class ApplicationUser : IdentityUser
{
public string City { get; set; }
}
ApplicationUser 替换 IdentityUser
生成迁移记录
public class AppDbContext : IdentityDbContext<ApplicationUser>
{
...
}
执行迁移
- RegisterViewModel 中添加 City 属性
注册时保存 City 属性
[HttpPost]
public async Task<IActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = model.Email,
Email = model.Email,
City = model.City
};
var result = await _userManager.CreateAsync(user, model.Password);
...
}
}