53 lines
1.9 KiB
Plaintext
53 lines
1.9 KiB
Plaintext
@page "/Account/Manage/ResetAuthenticator"
|
|
|
|
@using Microsoft.AspNetCore.Identity
|
|
@using adminSystem.UI.Data
|
|
|
|
@inject UserManager<ApplicationUser> UserManager
|
|
@inject SignInManager<ApplicationUser> SignInManager
|
|
@inject IdentityUserAccessor UserAccessor
|
|
@inject IdentityRedirectManager RedirectManager
|
|
@inject ILogger<ResetAuthenticator> Logger
|
|
|
|
<PageTitle>Reset authenticator key</PageTitle>
|
|
|
|
<StatusMessage />
|
|
<h3>Reset authenticator key</h3>
|
|
<div class="alert alert-warning" role="alert">
|
|
<p>
|
|
<span class="glyphicon glyphicon-warning-sign"></span>
|
|
<strong>If you reset your authenticator key your authenticator app will not work until you reconfigure it.</strong>
|
|
</p>
|
|
<p>
|
|
This process disables 2FA until you verify your authenticator app.
|
|
If you do not complete your authenticator app configuration you may lose access to your account.
|
|
</p>
|
|
</div>
|
|
<div>
|
|
<form @formname="reset-authenticator" @onsubmit="OnSubmitAsync" method="post">
|
|
<AntiforgeryToken />
|
|
<button class="btn btn-danger" type="submit">Reset authenticator key</button>
|
|
</form>
|
|
</div>
|
|
|
|
@code {
|
|
[CascadingParameter]
|
|
private HttpContext HttpContext { get; set; } = default!;
|
|
|
|
private async Task OnSubmitAsync()
|
|
{
|
|
var user = await UserAccessor.GetRequiredUserAsync(HttpContext);
|
|
await UserManager.SetTwoFactorEnabledAsync(user, false);
|
|
await UserManager.ResetAuthenticatorKeyAsync(user);
|
|
var userId = await UserManager.GetUserIdAsync(user);
|
|
Logger.LogInformation("User with ID '{UserId}' has reset their authentication app key.", userId);
|
|
|
|
await SignInManager.RefreshSignInAsync(user);
|
|
|
|
RedirectManager.RedirectToWithStatus(
|
|
"Account/Manage/EnableAuthenticator",
|
|
"Your authenticator app key has been reset, you will need to configure your authenticator app using the new key.",
|
|
HttpContext);
|
|
}
|
|
}
|