c# - 我想为 ASP.NET Core 身份的用户创建一个帐户,但我无法将数据插入到表 dbo.AspNetUsers
问题描述
我有一个用户列表,我想选择一个用户并为他创建一个帐户。我正在使用 IdentityUser,但我无法在我的表中插入数据dbo.AspNetUsers
我会很高兴得到任何帮助,谢谢
这是控制器:
namespace PFE_Management.Controllers
{
public class StudentsController : Controller
{
//Injection des dependances
private readonly ApplicationDbContext _context;
private readonly UserManager<IdentityUser> _userManager;
private SignInManager<IdentityUser> _signManager;
public StudentsController(ApplicationDbContext context,
UserManager<IdentityUser> user,
SignInManager<IdentityUser> signManager)
{
_context = context;
_userManager = user;
_signManager = signManager;
}
// some code here
[HttpPost]
public async Task<IActionResult> Register(Student model)
{
if (ModelState.IsValid)
{
var user = new IdentityUser { Email = model.Email };
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await _signManager.SignInAsync(user, false);
return RedirectToAction("Index", "Student");
}
else
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error.Description);
}
}
}
return View();
}
}
}
解决方案
我看到的最大问题是您没有用户名。尽管所有 Microsoft 教程都使用电子邮件作为用户名和电子邮件字段 - 您必须同时指定两者:
IdentityUser user = new()
{
UserName = model.email,
Email = model.email,
EmailConfirmed = true
};
IdentityResult result = await _userManager.CreateAsync(user, model.password);
此外,如果您仍有问题 - 请发布您从中获得的错误CreateAsync()
推荐阅读
- hive - 如何将配置单元查询结果导出到单个本地文件?
- python - 删除非ASCII字符时如何完全删除行?
- r - R中RCB设计的方差检验的同质性
- android - 通过 Activity Results API 启用自动填充服务
- amazon-web-services - 如何使用无服务器框架将 AWSCLI 部署到 AWS Lambda 中?
- linux - 了解 NTP Reach Metric -- 什么构成失败的 NTP 事务?
- amazon-web-services - AWS RDS 代理连接
- sql - 为什么我从这个查询中只得到一行?
- java - JPA 禁用 DDL 的自动生成
- swift - SwiftUI 选择器项目 .foregroundColor() 不起作用