Exemple #1
0
        //[HttpPost("sign-up", Name = "PostRegister")]
        public async Task <IActionResult> Register(RegisterAccount account, string returnTo)
        {
            if (ModelState.IsValid)
            {
                User user = new User()
                {
                    UserName      = account.UserName,
                    Email         = account.Email,
                    FirstName     = account.FirstName,
                    LastName      = account.LastName,
                    RegisteredOn  = account.RegisteredOn,
                    PhotoFileName = "user_avatar.png",
                    GeneratedKey  = Guid.NewGuid().ToString("N"),
                    PhoneNumber   = account.PhoneNumberUser
                };

                var result = await _userManager.CreateAsync(user, account.Password);

                if (result.Succeeded)
                {
                    if (_userManager.Options.SignIn.RequireConfirmedEmail)
                    {
                        var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        var callBackUrl = Url.RouteUrl("ConfirmEmail", new { code, key = user.GeneratedKey },
                                                       Request.Scheme);

                        var message = $"<a href=\"{callBackUrl}\"> Confirm Email </a>";

                        await _emailSender.SendEmailAsync(user.Email, "Confirm Email", message);

                        return(View("SuccessRegister", user));
                    }
                    if (_userManager.Options.SignIn.RequireConfirmedPhoneNumber)
                    {
                        var token = await _userManager
                                    .GenerateChangePhoneNumberTokenAsync(user, user.PhoneNumber);

                        await _smsSender.SendSmsAsync(account.PhoneNumberUser, token);

                        return(View("ConfirmPhone", new Confirmphone  {
                            Returnto = returnTo, Username = account.UserName
                        }));
                    }

                    // await _signInManager.SignInAsync(user, false);

                    return(RedirectToLocal(returnTo));
                }

                this.AddErrors(result);
            }

            return(View(account));
        }
        public async Task <ActionResult> AddPhoneNumber(AddPhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            // Generate the token and send it
            var code = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), model.Number);

            if (UserManager.SmsService != null)
            {
                var message = new IdentityMessage
                {
                    Destination = model.Number,
                    Body        = "Your security code is: " + code
                };
                await UserManager.SmsService.SendAsync(message);
            }
            return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number }));
        }
        public async Task <ActionResult> AddPhoneNumber(AddPhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            // Generar el token y enviarlo
            var code = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId <long>(), model.Number);

            if (UserManager.SmsService != null)
            {
                var message = new IdentityMessage
                {
                    Destination = model.Number,
                    Body        = "Su código de seguridad es: " + code
                };
                await UserManager.SmsService.SendAsync(message);
            }
            return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number }));
        }
Exemple #4
0
        /// <summary>
        /// If the appuser has specified a phone number.
        /// Sends a SMS code to confirm the phone number of the user.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="registerPhoneNumberDto"></param>
        /// <returns></returns>
        private async Task SendPhoneNumberConfirmationAsync(long userId, RegisterPhoneNumberReq registerPhoneNumberDto)
        {
            if (!string.IsNullOrWhiteSpace(registerPhoneNumberDto.PhoneNumber))
            {
                var smsCode = await AppUserManager.GenerateChangePhoneNumberTokenAsync(userId, registerPhoneNumberDto.PhoneNumber);

                if (AppUserManager.SmsService != null)
                {
                    var message = new IdentityMessage
                    {
                        Destination = registerPhoneNumberDto.PhoneNumber,
                        Body        = "Your Api security code is: " + smsCode
                    };
                    await AppUserManager.SmsService.SendAsync(message);
                }
            }
        }
Exemple #5
0
        public async Task <Object> InvokeAsync(Int64 UserId, String PhoneNumber)
        {
            var userByPhone = await _userManager.FindAsync(new UserLoginInfo("PhoneNumber", PhoneNumber));

            if (userByPhone != null && userByPhone.Id != UserId)
            {
                return("phoneAlreadyTaken");
            }

            String code = await _userManager.GenerateChangePhoneNumberTokenAsync(UserId, PhoneNumber);

            if (_userManager.SmsService == null)
            {
                throw new ArgumentNullException("UserManager.SmsService");
            }

            var message = new IdentityMessageWithUserId
            {
                Destination = PhoneNumber,
                Body        = "Your security code is: " + code,
                UserId      = UserId
            };

            try
            {
                await _userManager.SmsService.SendAsync(message);
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                return($"error:{ex.Message}");
            }
            return("success");
        }
Exemple #6
0
 public Task <string> GeneratePhoneNumberToken(User user, string phoneNumber)
 {
     return(_userManager.GenerateChangePhoneNumberTokenAsync(user, user.PhoneNumber));
 }