Exemplo n.º 1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            Auth = new AuthenticatorVM(this);

            var authenticator   = Auth.GetAuthenticator();
            var authenticatorUI = authenticator.GetUI();

            PresentViewController(authenticatorUI, true, null);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);


            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            Auth = new AuthenticatorVM(this);

            var authenticator   = Auth.GetAuthenticator();
            var authenticatorUI = authenticator.GetUI(this);

            StartActivity(authenticatorUI);
        }
Exemplo n.º 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));
        }