在 asp 身份中更改 phone 号码
change phone number in asp identity
我在 ASP 网络核心应用程序中更新 phone 号码时遇到问题。
除 phone 数字外的所有字段都保存在数据库中。我尝试了 3 种不同的方式来更新 phone:
- 手动设置
- 使用UserManager.SetPhoneNumberAsync()
- 使用 UserManager.ChangePhoneNumberAsync() 生成令牌
所有这些都不起作用。并且没有任何错误。请帮助我
[HttpPost][AllowAnonymous]
public async Task UpdateLogin(UpdateAccountRequest request)
{
try {
var user = await UserService.FindExistingUserAsync(request.CurrentEmail, request.CurrentPhoneNumber);
var account = user.Accounts.SingleOrDefault(x = > x.AccountId == request.AccountId);
account.FirstName = request.PatientFirstName;
account.LastName = request.PatientLastName;
var changePhoneNumberToken = await UserManager.GenerateChangePhoneNumberTokenAsync(user, request.UpdatedPhoneNumber);
var changePhoneResult = await UserManager.ChangePhoneNumberAsync(user, request.UpdatedPhoneNumber, changePhoneNumberToken);
if (!changePhoneResult.Succeeded) {
return StatusCode(StatusCodes.Status500InternalServerError, changePhoneResult.Errors);
}
var updateResult = await UserManager.UpdateAsync(user);
if (!result.Succeeded) {
return StatusCode(StatusCodes.Status500InternalServerError);
}
return Ok("User updated");
}
catch (Exception ex) {
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
问题消失了。像 DB 一样的 Loks 没有更新
我在 ASP 网络核心应用程序中更新 phone 号码时遇到问题。 除 phone 数字外的所有字段都保存在数据库中。我尝试了 3 种不同的方式来更新 phone:
- 手动设置
- 使用UserManager.SetPhoneNumberAsync()
- 使用 UserManager.ChangePhoneNumberAsync() 生成令牌 所有这些都不起作用。并且没有任何错误。请帮助我
[HttpPost][AllowAnonymous]
public async Task UpdateLogin(UpdateAccountRequest request)
{
try {
var user = await UserService.FindExistingUserAsync(request.CurrentEmail, request.CurrentPhoneNumber);
var account = user.Accounts.SingleOrDefault(x = > x.AccountId == request.AccountId);
account.FirstName = request.PatientFirstName;
account.LastName = request.PatientLastName;
var changePhoneNumberToken = await UserManager.GenerateChangePhoneNumberTokenAsync(user, request.UpdatedPhoneNumber);
var changePhoneResult = await UserManager.ChangePhoneNumberAsync(user, request.UpdatedPhoneNumber, changePhoneNumberToken);
if (!changePhoneResult.Succeeded) {
return StatusCode(StatusCodes.Status500InternalServerError, changePhoneResult.Errors);
}
var updateResult = await UserManager.UpdateAsync(user);
if (!result.Succeeded) {
return StatusCode(StatusCodes.Status500InternalServerError);
}
return Ok("User updated");
}
catch (Exception ex) {
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
问题消失了。像 DB 一样的 Loks 没有更新