public async Task <ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } // 生成令牌并发送该令牌 if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl })); }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { System.Diagnostics.Trace.WriteLine(System.Threading.Thread.CurrentThread.Name + " " + System.DateTime.Now + " " + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType + " " + System.Reflection.MethodBase.GetCurrentMethod().Name + " " + " " + (new System.Diagnostics.StackFrame(0, true)).GetFileName() + " " + (new System.Diagnostics.StackFrame(0, true)).GetFileLineNumber() + " " + System.Environment.StackTrace + System.Environment.NewLine); if (!ModelState.IsValid) { return(View()); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } // Generate the token and send it //if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) //{ // return View("Error"); //} //var user = await userManager.FindAsync(model.SelectedProvider) return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } if (model.SelectedProvider == "Authenticator") { return(RedirectToAction(nameof(VerifyAuthenticatorCode), new { ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); } // Generate the token and send it var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(View("Error")); } var message = "Your security code is: " + code; if (model.SelectedProvider == "Email") { await _emailSender.SendEmailAsync(new EmailEntry() { ToEmailAddress = user.Email, ToName = user.FullName, Subject = "Security Code", Body = message }); } else if (model.SelectedProvider == "Phone") { await _smsSender.SendSmsAsync(await _userManager.GetPhoneNumberAsync(user), message); } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task SendCodePostInvokesGenerateTwoFactorTokenAsyncWithCorrectUserAndTokenProvider() { var applicationUser = new ApplicationUser(); var model = new SendCodeViewModel { SelectedProvider = "Email" }; var userManager = CreateUserManagerMock(); var signInManager = CreateSignInManagerMock(userManager); signInManager.Setup(x => x.GetTwoFactorAuthenticationUserAsync()).ReturnsAsync(applicationUser); var sut = new AdminController(userManager.Object, signInManager.Object, null, null, null); await sut.SendCode(model); userManager.Verify(x => x.GenerateTwoFactorTokenAsync(applicationUser, model.SelectedProvider), Times.Once); }
// [ValidateAntiForgeryToken] public async Task <IActionResult> SendCode(string returnUrl = null, bool rememberMe = false) { var model = new SendCodeViewModel { SelectedProvider = "Phone", ReturnUrl = returnUrl, RememberMe = rememberMe }; /* if (!ModelState.IsValid) * { * return View(); * }*/ var success = await _userProvider.SendCodeAsync(model); if (!success) { return(View("Error")); } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public void Setters_ShouldSetPropertiesCorrectly() { // Arrange var expectedUrl = this.Fixture.Create<string>(); var expectedProvider = this.Fixture.Create<string>(); var expectedProviders = new List<SelectListItem>(); var sut = new SendCodeViewModel(); // Act sut.ReturnUrl = expectedUrl; sut.SelectedProvider = expectedProvider; sut.RememberMe = true; sut.Providers = expectedProviders; // Assert Assert.AreSame(expectedUrl, sut.ReturnUrl); Assert.AreSame(expectedProvider, sut.SelectedProvider); Assert.AreSame(expectedProviders, sut.Providers); Assert.AreEqual(true, sut.RememberMe); }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } // Generate the token and send it var code = await userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(View("Error")); } if (model.SelectedProvider == "Email") { string toAddress = await userManager.GetEmailAsync(user); await emailSender.SendSecurityCodeEmailAsync( Site, toAddress, sr["Security Code"], code); } else if (model.SelectedProvider == "Phone") { var message = string.Format(sr["Your security code is: {0}"], code); var userPhone = await userManager.GetPhoneNumberAsync(user); await smsSender.SendSmsAsync(Site, userPhone, message); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await SignInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(ErrorResult()); } // Generate the token and send it var code = await UserManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(ErrorResult()); } if (model.SelectedProvider == "Email") { await EmailSender.SendEmailCommunicationAsync( SystemCommunicationPurposes.UserTwoFactorLoginCode, CommunicationModelFactory.CreateSimpleCodeModel(code), await UserManager.GetEmailAsync(user)); } else if (model.SelectedProvider == "Phone") { await SmsSender.SendSmsCommunicationAsync( SystemCommunicationPurposes.UserTwoFactorLoginCode, CommunicationModelFactory.CreateSimpleCodeModel(code), await UserManager.GetPhoneNumberAsync(user)); } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } // Generate the token and send it var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(View("Error")); } var message = "Your security code is: " + code; switch (model.SelectedProvider) { case "Email": await _emailSender.SendEmailAsync(await _userManager.GetEmailAsync(user), "Security Code", message); break; case "Phone": await _smsSender.SendSmsAsync(await _userManager.GetPhoneNumberAsync(user), message); break; } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { try { ViewBag.Localize = getLocale(); if (!ModelState.IsValid) { return(View()); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); } catch { return(RedirectToAction("Message", "Home", new { lang = getLocale() })); } }
public async Task <ActionResult> SendSecurityCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } //this.SendOTP2Phone TempData["DeliveryMethod"] = "sent to your email account"; if (model.SelectedProvider == RBAC_ExtendedMethods.c_PhoneCode) { TempData["DeliveryMethod"] = "texted to your phone"; } return(RedirectToAction("VerifySecurityCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { try { if (!ModelState.IsValid) { return(View()); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); } catch (Exception ex) { Log.Error(ex); throw; } }
public async Task SendCodePostSendsSendSecurityCodeSmsWithCorrectDataWhenSelectedProviderIsPhone() { const string token = "token"; const string usersPhoneNumber = "usersPhoneNumber"; var applicationUser = new ApplicationUser(); var model = new SendCodeViewModel { SelectedProvider = "Phone" }; var userManager = CreateUserManagerMock(); var signInManager = CreateSignInManagerMock(userManager); var mediator = new Mock <IMediator>(); userManager.Setup(x => x.GenerateTwoFactorTokenAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>())).ReturnsAsync(token); userManager.Setup(x => x.GetPhoneNumberAsync(applicationUser)).ReturnsAsync(usersPhoneNumber); signInManager.Setup(x => x.GetTwoFactorAuthenticationUserAsync()).ReturnsAsync(applicationUser); var sut = new AdminController(userManager.Object, signInManager.Object, mediator.Object, null, null); await sut.SendCode(model); mediator.Verify(x => x.SendAsync(It.Is <SendAccountSecurityTokenSms>(y => y.PhoneNumber == usersPhoneNumber && y.Token == token))); }
public async Task <IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } if (model.SelectedProvider == "Authenticator") { return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); } // Email used // Generate the token and send it var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(View("Error")); } var message = "Your security code is: " + code; if (model.SelectedProvider == "Email") { //TODO: replacing it by sendEmailTemplate await _emailSender.SendEmail(await _userManager.GetEmailAsync(user), "Security Code", message, "Hi Sir"); } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToAction("Index", "Error")); } // Generate the token and send it var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(RedirectToAction("Index", "Error")); } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task<ActionResult> SendCode(SendCodeViewModel model) { ActionResult rtnResult; if (!ModelState.IsValid) { rtnResult = View(); } else { // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { rtnResult = View("Error"); } else { rtnResult = RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe }); } } return rtnResult; }
public async Task <ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return(View()); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return(View("Error")); } if (model.SelectedProvider.Equals("Authy Token")) { return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); } else { return(RedirectToAction("VerifyOneTouch", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); } }
public async Task<ActionResult> SendCode(SendCodeViewModel model) { try { if (!ModelState.IsValid) { return View(); } // Generate the token and send it if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return View("Error"); } return RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe }); } catch (ValidationException ex) { throw (ex); } catch (Exception ex) { CommonTools.ErrorReporting(ex); return new HttpStatusCodeResult(System.Net.HttpStatusCode.InternalServerError); } }
public async Task<ActionResult> SendCode(string returnUrl, bool rememberMe) { var userId = await this.SignInManager.GetVerifiedUserIdAsync(); if (userId == null) { return this.View("Error"); } var userFactors = await this.UserManager.GetValidTwoFactorProvidersAsync(userId); var factorOptions = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }); var model = new SendCodeViewModel { Providers = factorOptions.ToList(), ReturnUrl = returnUrl, RememberMe = rememberMe }; return this.View(model); }
public async Task<ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return View(); } // Создание и отправка маркера if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return View("Error"); } return RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe }); }
public async Task SendCodePostReturnsRedirectToActionResult() { var model = new SendCodeViewModel { SelectedProvider = string.Empty, ReturnUrl = "ReturnUrl", RememberMe = true }; var routeValues = new Dictionary<string, object> { ["Provider"] = model.SelectedProvider, ["ReturnUrl"] = model.ReturnUrl, ["RememberMe"] = model.RememberMe }; var userManager = CreateUserManagerMock(); var signInManager = CreateSignInManagerMock(userManager); signInManager.Setup(x => x.GetTwoFactorAuthenticationUserAsync()).ReturnsAsync(new ApplicationUser()); userManager.Setup(x => x.GenerateTwoFactorTokenAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).ReturnsAsync("token"); var sut = new AdminController(userManager.Object, signInManager.Object, null, null, null); var result = await sut.SendCode(model) as RedirectToActionResult; Assert.Equal(result.ActionName, nameof(AdminController.VerifyCode)); Assert.Equal(result.RouteValues, routeValues); }
public async Task SendCodePostSendsSendSecurityCodeSmsWithCorrectDataWhenSelectedProviderIsPhone() { const string token = "token"; const string usersPhoneNumber = "usersPhoneNumber"; var applicationUser = new ApplicationUser(); var model = new SendCodeViewModel { SelectedProvider = "Phone" }; var userManager = CreateUserManagerMock(); var signInManager = CreateSignInManagerMock(userManager); var mediator = new Mock<IMediator>(); userManager.Setup(x => x.GenerateTwoFactorTokenAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).ReturnsAsync(token); userManager.Setup(x => x.GetPhoneNumberAsync(applicationUser)).ReturnsAsync(usersPhoneNumber); signInManager.Setup(x => x.GetTwoFactorAuthenticationUserAsync()).ReturnsAsync(applicationUser); var sut = new AdminController(userManager.Object, signInManager.Object, mediator.Object, null, null); await sut.SendCode(model); mediator.Verify(x => x.SendAsync(It.Is<SendSecurityCodeSms>(y => y.PhoneNumber == usersPhoneNumber && y.Token == token))); }
public async Task<ActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return View(); } // Gerar o token e enviar if (!await SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return View("Error"); } return RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, userId = model.UserId }); }
public async Task<IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return View(); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return View("Error"); } // Generate the token and send it var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return View("Error"); } var message = "Your security code is: " + code; if (model.SelectedProvider == "Email") { await _emailSender.SendEmailAsync(await _userManager.GetEmailAsync(user), "Security Code", message); } else if (model.SelectedProvider == "Phone") { await _smsSender.SendSmsAsync(await _userManager.GetPhoneNumberAsync(user), message); } return RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe }); }
public Task <ActionResult> SendCodeTest01([PexAssumeUnderTest] AccountController target, SendCodeViewModel model) { Task <ActionResult> result = target.SendCode(model); return(result); // TODO: aggiungere asserzioni a metodo AccountControllerTest.SendCodeTest01(AccountController, SendCodeViewModel) }
public async Task<IActionResult> SendCode(SendCodeViewModel model) { if (!ModelState.IsValid) { return View(); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return View("Error"); } // Generate the token and send it var token = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(token)) { return View("Error"); } if (model.SelectedProvider == "Email") { await _mediator.SendAsync(new SendSecurityCodeEmail { Email = await _userManager.GetEmailAsync(user), Token = token }); } else if (model.SelectedProvider == "Phone") { await _mediator.SendAsync(new SendAccountSecurityTokenSms { PhoneNumber = await _userManager.GetPhoneNumberAsync(user), Token = token }); } return RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, model.ReturnUrl, model.RememberMe }); }
public async Task<ActionResult> SendCode(SendCodeViewModel model) { if (!this.ModelState.IsValid) { return this.View(); } // Generate the token and send it if (!await this.SignInManager.SendTwoFactorCodeAsync(model.SelectedProvider)) { return this.View("Error"); } return this.RedirectToAction( "VerifyCode", new { Provider = model.SelectedProvider, model.ReturnUrl, model.RememberMe }); }
public async Task<ActionResult> SendCode(SendCodeViewModel model) { // Generate the token and send it if (!ModelState.IsValid) { return View(); } if (!await SignInHelper.SendTwoFactorCode(model.SelectedProvider)) { return View("Error"); } return RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl }); }