@page "/Account/Manage/DeletePersonalData" @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity @using adminSystem.UI.Data @inject UserManager UserManager @inject SignInManager SignInManager @inject IdentityUserAccessor UserAccessor @inject IdentityRedirectManager RedirectManager @inject ILogger Logger Delete Personal Data

Delete Personal Data

@if (requirePassword) {
}
@code { private string? message; private ApplicationUser user = default!; private bool requirePassword; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; [SupplyParameterFromForm] private InputModel Input { get; set; } = new(); protected override async Task OnInitializedAsync() { Input ??= new(); user = await UserAccessor.GetRequiredUserAsync(HttpContext); requirePassword = await UserManager.HasPasswordAsync(user); } private async Task OnValidSubmitAsync() { if (requirePassword && !await UserManager.CheckPasswordAsync(user, Input.Password)) { message = "Error: Incorrect password."; return; } var result = await UserManager.DeleteAsync(user); if (!result.Succeeded) { throw new InvalidOperationException("Unexpected error occurred deleting user."); } await SignInManager.SignOutAsync(); var userId = await UserManager.GetUserIdAsync(user); Logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId); RedirectManager.RedirectToCurrentPage(); } private sealed class InputModel { [DataType(DataType.Password)] public string Password { get; set; } = ""; } }