diff --git a/Oqtane.Server/Managers/UserManager.cs b/Oqtane.Server/Managers/UserManager.cs index eda57b74..dc9c596d 100644 --- a/Oqtane.Server/Managers/UserManager.cs +++ b/Oqtane.Server/Managers/UserManager.cs @@ -184,7 +184,6 @@ namespace Oqtane.Managers IdentityUser identityuser = await _identityUserManager.FindByNameAsync(user.Username); if (identityuser != null) { - identityuser.Email = user.Email; var valid = true; if (!string.IsNullOrEmpty(user.Password)) { @@ -203,6 +202,13 @@ namespace Oqtane.Managers await _identityUserManager.UpdateAsync(identityuser); // requires password to be provided } + if (user.Email != identityuser.Email) + { + await _identityUserManager.SetEmailAsync(identityuser, user.Email); + var emailConfirmationToken = await _identityUserManager.GenerateEmailConfirmationTokenAsync(identityuser); + await _identityUserManager.ConfirmEmailAsync(identityuser, emailConfirmationToken); + } + user = _users.UpdateUser(user); _syncManager.AddSyncEvent(_tenantManager.GetAlias().TenantId, EntityNames.User, user.UserId, SyncEventActions.Update); _syncManager.AddSyncEvent(_tenantManager.GetAlias().TenantId, EntityNames.User, user.UserId, SyncEventActions.Reload);