ASP.NET Identity UserManager UpdateAsync return 空

ASP.NET Identity UserManager UpdateAsync return null

我想更新用户资料。为此,我在 web api.I 中编写了 "Change Profile" 方法,更新用户数据时出现问题,因为“UpdateAsync” returns 始终为空。

[HttpPost]
[Route("api/ChangeProfile")]
[ResponseType(typeof(AccountModel))]
public async Task<IHttpActionResult> ChangeProfile([FromBody]AccountModel model)
{
    var userStore = new UserStore<ApplicationUser>(new ApplicationDbContext());
    var manager = new UserManager<ApplicationUser>(userStore);
    var user = await manager.FindByNameAsync(model.UserName);
    if (user != null)
    {
        var updateUser = new ApplicationUser()
        {   UserName = model.UserName,
            Email = model.Email,
            FirstName = model.FirstName,
            LastName = model.LastName,

        };

        IdentityResult result = await manager.UpdateAsync(updateUser);

        return Ok(result);
    }
    else
    {
        return NotFound();
    }
}

账户模型:

  public class AccountModel
{
    public string UserName { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string LoggedOn { get; set; }
    public string Roles { get; set; }
}

欢迎任何帮助或建议。

首先,您需要在调试上再进行一步。

此外,您必须更新从数据库中检索到的用户字段,而不是创建新的 AplicationUser。

 if (user != null)
 {        
    user.UserName = model.UserName,
    user.Email = model.Email,
    user.FirstName = model.FirstName,
    user.LastName = model.LastName,
 };

 IdentityResult result = await manager.UpdateAsync(updateUser);
 return Ok(result);
 }

此致。