c# - 从另一个项目手动在 AspNetUser 表中添加新用户
问题描述
我使用身份模型(Identity.EntityFrameworkCore Version=3.1.3.0 )创建了Asp.Net Core 3.0 web Api项目,现在我可以使用 api 控制器登录和注册,但是我有另一个由Asp.Net MVC 5(数据库优先)创建的项目在同一个数据库上连接,我需要在 MVC 项目中直接在共享数据库中添加 AspNetUsers 表中的用户,而不使用 Web Api 项目。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddUser(UserViewModel newUser)
{
if (ModelState.IsValid)
{
// How to add user manually here
_dbContext.AspNetUsers.Add(newUser);
_dbContext.SaveChanges();
}
return View();
}
解决方案
您必须对输入模型使用 [Body] 注释。并使用映射器(例如 AutoMapper)将您的 ViewModel 映射到 Db 模型。在 IApplicationUserManager 方法 CreateAsync(User user, string password) 创建用户。
var user = new User
{
UserName = newUser.UserName,
Email = newUser.Email
};
var result = await _userManager.CreateAsync(user, model.Password).ConfigureAwait(false);
推荐阅读
- typescript - 覆盖 eslint 规则
- scrapy - Scrapy:从刮板中掉落物品
- jenkins - 如何为 JaCoCo/SonarQube 配置 sonar.coverage.jacoco.xmlReportPaths?
- javascript - Material-UI的TextField多行区域中的输入文本重叠
- javascript - 使用散布对象时添加新属性?
- r - 我将如何使用 ANOVA 来查找数据集中三个组的平均值之间的差异
- google-chrome-extension - Firestore + Chrome 扩展内容策略规则
- java - 为什么我会收到“Project11.java:49:错误:解析时到达文件末尾”?
- reactjs - React Tree 组件更新状态失败
- c++ - C ++在标点符号后将字符串分成新行