ASP.Net Identity. UserManager.CreateAsync Throws Error: Value cannot be null. Parameter name: request
ASP.Net Identity. UserManager.CreateAsync Throws Error: Value cannot be null. Parameter name: request
我正在尝试通过在应用程序中调用注册函数来创建用户。
当函数作为 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 Identity 2.0 和 EF Code First 构建的吗?如果是这样,请检查您的初始数据库配置是否在 AspNetUsers 的末尾放置了一个名为 'Discriminator' 的列。如果是这种情况,请重新创建初始迁移并删除生成的列。删除后,您可以执行更新数据库。这有意义吗?我刚遇到这种事。
在标识模型中,您将有一个鉴别器列。在您的模型中,添加迁移并更新数据库。
我正在尝试通过在应用程序中调用注册函数来创建用户。
当函数作为 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 Identity 2.0 和 EF Code First 构建的吗?如果是这样,请检查您的初始数据库配置是否在 AspNetUsers 的末尾放置了一个名为 'Discriminator' 的列。如果是这种情况,请重新创建初始迁移并删除生成的列。删除后,您可以执行更新数据库。这有意义吗?我刚遇到这种事。
在标识模型中,您将有一个鉴别器列。在您的模型中,添加迁移并更新数据库。