【问题标题】:ASP.NET CORE Identity UserManager CreateAsync schema errorASP.NET CORE Identity UserManager CreateAsync 架构错误
【发布时间】:2020-10-29 07:27:39
【问题描述】:

当 AccountController.Register() 中的 UserManager.CreateAsync(user, password) 用于创建新注册的用户时,它总是出错,因为它试图将记录插入到 mydomain\myNetworkId 架构下的 AspNetUsers 表中。 AspNetUsers 表在“共享”模式中。有没有办法配置身份基础设施以使用指定的模式?我的数据库中有 4 个架构(应用程序、管理员、共享和临床)。

SqlException: Invalid object name 'myDomain\myNetworkID.AspNetUsers'.
Microsoft.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__164_0(Task<SqlDataReader> result)

[HttpPost]
[ValidateAntiForgeryToken]
public async Task <IActionResult> Register(RegisterViewModel registerModel) {
  if (!ModelState.IsValid) {
    return View();
  }

  CustomIdentityUser user = _mapper.Map<CustomIdentityUser>(registerModel);

  var result = await _userManager.CreateAsync(user, registerModel.Password);
  if (!result.Succeeded) {
    foreach(var error in result.Errors) {
      ModelState.TryAddModelError(error.Code, error.Description);
    }

    return View(registerModel);
  }

  await _userManager.AddToRoleAsync(user, "Visitor");

  return RedirectToAction(nameof(HomeController.Index), "Home");
}

【问题讨论】:

    标签: asp.net-core asp.net-identity


    【解决方案1】:

    我意识到我在 dbContext.OnModeCreating() 中的 myDomain\myNetworkName 架构中设置了默认架构。我将其更改为“共享”,如下面的 UserManager 现在可以在正确的架构中创建用户。

    受保护的覆盖无效 OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasAnnotation("Relational:DefaultSchema", "shared"); /* 重新运行 EF Power Tools 后,确保将默认架构更改为共享 */

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多