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 MessageServices.SendEmailAsync(await UserManager.GetEmailAsync(user), "Security Code", message); } else if (model.SelectedProvider == "Phone") { await MessageServices.SendSmsAsync(await UserManager.GetPhoneNumberAsync(user), message); } return(RedirectToAction("VerifyCode", new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <IActionResult> AddPhoneNumber([FromBody] AddPhoneNumberViewModel model) { if (!ModelState.IsValid) { return(this.StatusCode(ApiStatusCode.InvalidArguments)); } // Generate the token and send it #if !NETCORE var code = await this.UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), model.Number); #else var user = await this.GetCurrentUserAsync(); var code = await this.UserManager.GenerateChangePhoneNumberTokenAsync(user, model.Number); #endif var messageText = "Your security code is: " + code; #if !NETCORE if (this.UserManager.SmsService != null) { var message = new IdentityMessage { Destination = model.Number, Body = messageText }; await this.UserManager.SmsService.SendAsync(message); } #else await MessageServices.SendSmsAsync(model.Number, messageText); #endif return(this.StatusCode(ApiStatusCode.Ok)); }
/// <summary> /// Send password recovery email. /// </summary> /// <param name="provider">Sending provider.</param> /// <param name="user">User for which send notification.</param> /// <param name="code">Password recovery code.</param> /// <returns>Async task which send code.</returns> protected virtual async Task OnRecoveryCodeSent(string provider, TUser user, string code) { var message = "Your security code is: " + code; if (provider == "Email") { await MessageServices.SendEmailAsync(user.Email, "Security Code", message); } else if (provider == "Phone") { await MessageServices.SendSmsAsync(user.PhoneNumber, message); } }
public async Task <IActionResult> AddPhoneNumber(AddPhoneNumberViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await GetCurrentUserAsync(); // Generate the token and send it var code = ""; // await UserManager.GenerateChangePhoneNumberTokenAsync(user, model.Number); await MessageServices.SendSmsAsync(model.Number, "Your security code is: " + code); return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number })); }