public async Task <IActionResult> DeletePersonalData(DeletePersonalDataModel model) { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } RequirePassword = await _userManager.HasPasswordAsync(user); if (RequirePassword) { if (!await _userManager.CheckPasswordAsync(user, model.Password)) { ModelState.AddModelError(string.Empty, "Password not correct."); return(View(model)); } } var result = await _userManager.DeleteAsync(user); var userId = await _userManager.GetUserIdAsync(user); if (!result.Succeeded) { throw new InvalidOperationException($"Unexpected error occurred deleteing user with ID '{userId}'."); } await _signInManager.SignOutAsync(); _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId); return(Redirect("~/")); }
public async Task <IActionResult> DeletePersonalData(DeletePersonalDataModel model) { var user = await this._userManager.GetUserAsync(this.User); if (user == null) { return(this.NotFound($"Unable to load user with ID '{this._userManager.GetUserId(this.User)}'.")); } if (await this._userManager.HasPasswordAsync(user)) { if (!await this._userManager.CheckPasswordAsync(user, model.Password)) { this.ModelState.AddModelError(string.Empty, "Password not correct."); return(this.View()); } } foreach (var login in await this._userManager.GetLoginsAsync(user)) { var loginResult = await this._userManager.RemoveLoginAsync(user, login.LoginProvider, login.ProviderKey); if (!loginResult.Succeeded) { throw new InvalidOperationException($"Unexpected error occurred deleteing user {login.LoginProvider} login with ID '{user.Id}'."); } } user.UserName = user.Id; user.NormalizedUserName = user.Id.ToUpper(); user.DisplayName = "Deleted"; user.Email = null; user.NormalizedEmail = null; user.EmailConfirmed = false; user.PhoneNumber = null; user.PhoneNumberConfirmed = false; user.PasswordHash = null; var updateResult = await this._userManager.UpdateAsync(user); if (!updateResult.Succeeded) { throw new InvalidOperationException($"Unexpected error occurred deleteing user data with ID '{user.Id}'."); } await this._signInManager.SignOutAsync(); this._logger.LogInformation("User with ID '{UserId}' deleted themselves.", this._userManager.GetUserId(this.User)); return(this.Redirect("~/")); }
public async Task <IActionResult> DeletePersonalData() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } RequirePassword = await _userManager.HasPasswordAsync(user); var model = new DeletePersonalDataModel(); return(View(model)); }
public async Task <IActionResult> DeletePersonalData() { var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } var model = new DeletePersonalDataModel() { RequirePassword = false }; return(View(model)); }