要在AspNet.Identity.Core 2中添加自定义字段到IdentityUser,并在创建用户时遇到问题,可以按照以下步骤解决:
public class ApplicationUser : IdentityUser
{
public string CustomField { get; set; }
}
Startup.cs
文件的ConfigureServices
方法中,将AspNet.Identity配置为使用你的自定义用户模型。添加以下代码:services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
请确保在使用的数据库上下文中添加ApplicationUser
实体,并在ApplicationDbContext
类中将其作为类型参数传递给IdentityDbContext
。
Register
动作中:[HttpPost]
public async Task Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email, CustomField = model.CustomField };
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
// 用户创建成功的处理
}
else
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error.Description);
}
}
}
return View(model);
}
在此示例中,假设你使用了UserManager
来处理用户的创建。确保在控制器的构造函数中注入UserManager
。
通过按照以上步骤进行操作,你应该能够成功添加自定义字段到IdentityUser,并在创建用户时不再遇到错误。