public bool TrySetVerified() { if (IsExpireTimeOver) { return(false); } _verifyState = VerifyState.Verified; return(true); }
/// <summary> /// 变更举报状态 /// </summary> /// <param name="state"></param> /// <param name="reportNum"></param> public void ChangeVerifyState(VerifyState state, int reportNum) { if (state == VerifyState) { return; } ReportNum = reportNum; VerifyState = state; OnVerifyStateChanged(); }
public async Task <VerifyState> VerifyAsync(AuthenticatorVM model, string userName) { VerifyState verifyState = new VerifyState(); AppUser user = await _userManager.FindByNameAsync(userName); verifyState.State = await _userManager.VerifyTwoFactorTokenAsync(user, _userManager.Options.Tokens.AuthenticatorTokenProvider, model.VerificationCode); verifyState.RecoveryCodes = (await _userManager.GenerateNewTwoFactorRecoveryCodesAsync(user, 5)).ToList(); if (verifyState.State) { user.TwoFactorEnabled = true; await _userManager.UpdateAsync(user); } return(verifyState); }
public async Task <IActionResult> AuthenticatorVerify(AuthenticatorVM model) { VerifyState verifyState = await _authenticatorService.VerifyAsync(model, User.Identity.Name); AppUser user = await _userManager.FindByNameAsync(User.Identity.Name); user.TwoFactorType = Entities.Enums.TwoFactorType.Authenticator; await _userManager.UpdateAsync(user); await _userManager.UpdateSecurityStampAsync(user); await _signInManager.RefreshSignInAsync(user); string kurtarmaKodlari = ""; foreach (var code in verifyState.RecoveryCodes) { kurtarmaKodlari += code + ","; } MesajYaz(verifyState.State, "Authenticator ile doğrulama başarıyla onaylanmıştır. <br> Lütfen olası telefonu çaldırma ya da bozulma ihtimaline karşı şu kurtarma kodlarını lütfen kaydediniz : " + kurtarmaKodlari, "Doğrulama kodu yanlış! Lütfen doğrulama kodunu kontrol ediniz."); return(View(model)); }