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);
}
此致。
我想更新用户资料。为此,我在 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);
}
此致。