【问题标题】:ASP.Net Identity. UserManager.CreateAsync Throws Error: Value cannot be null. Parameter name: requestASP.Net 身份。 UserManager.CreateAsync 引发错误:值不能为空。参数名称:请求
【发布时间】:2015-06-22 21:33:20
【问题描述】:

我正在尝试通过在应用程序中调用注册函数来创建用户。

当函数作为 API 调用时,该函数可以正常工作。

从应用程序内部调用时会抛出错误

        AccountController ac = new AccountController();
        RegisterBindingModel rbm = new RegisterBindingModel();
        rbm.Email = UserAccountBase.Email; 
        rbm.Password = "TestPassword";
        rbm.ConfirmPassword = "TestPassword";

        var userId = await ac.Register(rbm);



 // POST api/Account/Register
    [AllowAnonymous]
    [Route("Register")]
    [ApiExplorerSettings(IgnoreApi = true)]
    public async Task<IHttpActionResult> Register(RegisterBindingModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
        try
        {
            var result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }
        }
        catch(Exception e) {
            var message = e.Message;
        }

        return Ok(user.Id);
    }

UserManager.CreateAsync 抛出错误

值不能为空。参数名称:请求

【问题讨论】:

  • 你是如何解决这个问题的?

标签: asp.net asp.net-mvc-5 asp.net-identity-2


【解决方案1】:

您是使用 ASP Identity 2.0 和 EF Code First 构建的吗?如果是这样,请检查您的初始数据库配置是否在 AspNetUsers 的末尾放置了一个名为“鉴别器”的列。如果是这种情况,请重新创建初始迁移并删除生成的列。删除后,您可以执行更新数据库。这有意义吗?我刚遇到这种情况。

【讨论】:

    【解决方案2】:

    在身份模型中,您将拥有一个鉴别器列。在您的模型中,添加迁移并更新数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      相关资源
      最近更新 更多