@page "/Account/Manage/GenerateRecoveryCodes" @using Microsoft.AspNetCore.Identity @using adminSystem.UI.Data @inject UserManager UserManager @inject IdentityUserAccessor UserAccessor @inject IdentityRedirectManager RedirectManager @inject ILogger Logger Generate two-factor authentication (2FA) recovery codes @if (recoveryCodes is not null) { } else {

Generate two-factor authentication (2FA) recovery codes

} @code { private string? message; private ApplicationUser user = default!; private IEnumerable? recoveryCodes; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; protected override async Task OnInitializedAsync() { user = await UserAccessor.GetRequiredUserAsync(HttpContext); var isTwoFactorEnabled = await UserManager.GetTwoFactorEnabledAsync(user); if (!isTwoFactorEnabled) { throw new InvalidOperationException("Cannot generate recovery codes for user because they do not have 2FA enabled."); } } private async Task OnSubmitAsync() { var userId = await UserManager.GetUserIdAsync(user); recoveryCodes = await UserManager.GenerateNewTwoFactorRecoveryCodesAsync(user, 10); message = "You have generated new recovery codes."; Logger.LogInformation("User with ID '{UserId}' has generated new 2FA recovery codes.", userId); } }