public IActionResult TwoFactorLogin(TwoFactorLoginDto twoFactorLogin)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var user = _signInManager.GetTwoFactorAuthenticationUserAsync().Result;

            if (user == null)
            {
                return(BadRequest());
            }
            var result = _signInManager.TwoFactorSignInAsync(twoFactorLogin.Provider, twoFactorLogin.Code, twoFactorLogin.IsPersistent, false).Result;

            if (!result.Succeeded)
            {
                ViewBag.Error = "کد وارد  شده صحیح نمی باشد";
            }
            if (result.Succeeded)
            {
                return(RedirectToAction("index", "home"));
            }
            else if (result.IsLockedOut)
            {
                ModelState.AddModelError("", "حساب شما قفل شده است");
                return(View());
            }
            return(View());
        }
        public IActionResult TwoFactorLogin(string UserName, bool IsPersisent)
        {
            TwoFactorLoginDto twoFactor = new TwoFactorLoginDto();
            var user = _userManager.FindByNameAsync(UserName).Result;

            if (user == null)
            {
                return(BadRequest());
            }
            var providers = _userManager.GetValidTwoFactorProvidersAsync(user).Result;

            if (providers.Contains("Phone"))
            {
                string     code       = _userManager.GenerateTwoFactorTokenAsync(user, "Phone").Result;
                SmsService smsService = new SmsService();
                smsService.Send(user.PhoneNumber, code);

                twoFactor.Provider     = "Phone";
                twoFactor.IsPersistent = IsPersisent;
            }
            else if (providers.Contains("Email"))
            {
                string       code         = _userManager.GenerateTwoFactorTokenAsync(user, "Email").Result;
                EmailService emailService = new EmailService();
                emailService.Execute(user.Email, $"Two Factor Code:{code}", "Two Factor Login");

                twoFactor.Provider     = "Email";
                twoFactor.IsPersistent = IsPersisent;
            }
            return(View("TwoFactorLogin", twoFactor));
        }
    private static ITwoFactorLogin?Map(TwoFactorLoginDto dto)
    {
        if (dto == null)
        {
            return(null);
        }

        return(new TwoFactorLogin
        {
            Id = dto.Id, UserOrMemberKey = dto.UserOrMemberKey, ProviderName = dto.ProviderName, Secret = dto.Secret
        });
    }
Exemplo n.º 4
0
        private void SaveLoginToken(int userId, string token)
        {
            var twoFactorLoginDto = new TwoFactorLoginDto
            {
                Token          = token,
                ExpirationDate = ExpirationDateTime,
                UserId         = userId,
            };

            _logger.Debug($"SaveLoginTokenInfo: {twoFactorLoginDto}");
            _loginRepository.SaveLoginToken(twoFactorLoginDto);
        }
Exemplo n.º 5
0
        public async Task <TwoFactorLoginDto> GetTwoFactorLoginForEdit()
        {
            var user = await GetCurrentUserAsync();

            var dto = new TwoFactorLoginDto
            {
                IsTwoFactorEnabled  = user.IsTwoFactorEnabled,
                QrCodeSetupImageUrl = user.GoogleAuthenticatorKey != null
                ? _googleTwoFactorAuthenticateService.GenerateSetupCode(GoogleAuthenticatorConst.Issuer,
                                                                        user.UserName, user.GoogleAuthenticatorKey, 300, 300).QrCodeSetupImageUrl
                : "",
                IsGoogleAuthenticatorEnabled = user.GoogleAuthenticatorKey != null
            };

            return(dto);
        }
Exemplo n.º 6
0
 public void SaveLoginToken(TwoFactorLoginDto dto)
 {
     _loginRepository.SaveLoginToken(dto);
 }