65 lines
2.1 KiB
Plaintext
65 lines
2.1 KiB
Plaintext
@page "/Account/Manage/Disable2fa"
|
|
|
|
@using Microsoft.AspNetCore.Identity
|
|
@using adminSystem.UI.Data
|
|
|
|
@inject UserManager<ApplicationUser> UserManager
|
|
@inject IdentityUserAccessor UserAccessor
|
|
@inject IdentityRedirectManager RedirectManager
|
|
@inject ILogger<Disable2fa> Logger
|
|
|
|
<PageTitle>Disable two-factor authentication (2FA)</PageTitle>
|
|
|
|
<StatusMessage />
|
|
<h3>Disable two-factor authentication (2FA)</h3>
|
|
|
|
<div class="alert alert-warning" role="alert">
|
|
<p>
|
|
<strong>This action only disables 2FA.</strong>
|
|
</p>
|
|
<p>
|
|
Disabling 2FA does not change the keys used in authenticator apps. If you wish to change the key
|
|
used in an authenticator app you should <a href="Account/Manage/ResetAuthenticator">reset your authenticator keys.</a>
|
|
</p>
|
|
</div>
|
|
|
|
<div>
|
|
<form @formname="disable-2fa" @onsubmit="OnSubmitAsync" method="post">
|
|
<AntiforgeryToken />
|
|
<button class="btn btn-danger" type="submit">Disable 2FA</button>
|
|
</form>
|
|
</div>
|
|
|
|
@code {
|
|
private ApplicationUser user = default!;
|
|
|
|
[CascadingParameter]
|
|
private HttpContext HttpContext { get; set; } = default!;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
user = await UserAccessor.GetRequiredUserAsync(HttpContext);
|
|
|
|
if (HttpMethods.IsGet(HttpContext.Request.Method) && !await UserManager.GetTwoFactorEnabledAsync(user))
|
|
{
|
|
throw new InvalidOperationException("Cannot disable 2FA for user as it's not currently enabled.");
|
|
}
|
|
}
|
|
|
|
private async Task OnSubmitAsync()
|
|
{
|
|
var disable2faResult = await UserManager.SetTwoFactorEnabledAsync(user, false);
|
|
if (!disable2faResult.Succeeded)
|
|
{
|
|
throw new InvalidOperationException("Unexpected error occurred disabling 2FA.");
|
|
}
|
|
|
|
var userId = await UserManager.GetUserIdAsync(user);
|
|
Logger.LogInformation("User with ID '{UserId}' has disabled 2fa.", userId);
|
|
RedirectManager.RedirectToWithStatus(
|
|
"Account/Manage/TwoFactorAuthentication",
|
|
"2fa has been disabled. You can reenable 2fa when you setup an authenticator app",
|
|
HttpContext);
|
|
}
|
|
}
|