コード例 #1
0
        public bool TrySetVerified()
        {
            if (IsExpireTimeOver)
            {
                return(false);
            }

            _verifyState = VerifyState.Verified;
            return(true);
        }
コード例 #2
0
        /// <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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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));
        }