public async Task <ActionResult> ForgetPasswordAsync(string email)
        {
            if (String.IsNullOrEmpty(email))
            {
                return(NotFound());
            }
            var user = await _manger.FindByEmailAsync(email);

            //Generate Link
            if (user == null)
            {
                return(NotFound());
            }
            //http://localhost:60761/Account/RegistertionConfirm?ID=449448&Token=hids56sfs
            var token = await _manger.GeneratePasswordResetTokenAsync(user);

            //var confirmLinkAsp = Url.Action("RegistertionConfirm", "Account", new
            //{ ID = user.Id, Token = HttpUtility.UrlEncode(token) }, Request.Scheme);

            var encodeToken = Encoding.UTF8.GetBytes(token);
            var newToken    = WebEncoders.Base64UrlEncode(encodeToken);
            var confirmLink = $"http://localhost:4200/passwordconfirm?ID={user.Id}&Token={newToken}";
            //SendGridAPI
            var subject     = "Forget Password";
            var content     = "Please Confirm your password";
            var htmlContent = "<a href = \"" + confirmLink + "\"> Confirm Password</a>";

            if (await SendGridAPI.Execute(user.Email, user.UserName, subject, content, htmlContent))
            {
                return(new ObjectResult(new { token = newToken }));
            }
            return(StatusCode(StatusCodes.Status400BadRequest));
        }
示例#2
0
        public async Task <IActionResult> ForgetPassword(string email)
        {
            if (email == null)
            {
                return(NotFound());
            }
            var user = await _manager.FindByEmailAsync(email);

            if (user == null)
            {
                return(NotFound());
            }

            var token = await _manager.GeneratePasswordResetTokenAsync(user);

            var encodeToken = Encoding.UTF8.GetBytes(token);
            var newToken    = WebEncoders.Base64UrlEncode(encodeToken);

            var confirmLink = $"http://localhost:4200/passwordconfirm?ID={user.Id}&Token={newToken}";
            var txt         = "Please confirm password";
            var link        = "<a href=\"" + confirmLink + "\">Passowrd confirm</a>";
            var title       = "Passowrd confirm";

            if (await SendGridAPI.Execute(user.Email, user.UserName, txt, link, title))
            {
                return(new ObjectResult(new { token = newToken }));
            }

            return(StatusCode(StatusCodes.Status400BadRequest));
        }
示例#3
0
        public async Task <IActionResult> Register(RegisterModel model)
        {
            if (model == null)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                if (EmailExistes(model.Email))
                {
                    return(BadRequest("Email is used"));
                }
                if (!IsEmailValid(model.Email))
                {
                    return(BadRequest("Email not valid!!"));
                }
                if (UserNameExistes(model.UserName))
                {
                    return(BadRequest("UserName is used"));
                }

                var user = new ApplicationUser
                {
                    Email    = model.Email,
                    UserName = model.UserName
                };

                var result = await _manager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    ////http://localhost:58314/Account/RegistrationConfirm?ID=545435&Token=5435354gw34523
                    var token = await _manager.GenerateEmailConfirmationTokenAsync(user);

                    var encodeToken = Encoding.UTF8.GetBytes(token);
                    var newToken    = WebEncoders.Base64UrlEncode(encodeToken);

                    var confirmLink = $"http://localhost:4200/registerconfirm?ID={user.Id}&Token={newToken}";
                    var txt         = "Please confirm your registration at our sute";
                    var link        = "<a href=\"" + confirmLink + "\">Confirm registration</a>";
                    var title       = "Registration Confirm";
                    if (await SendGridAPI.Execute(user.Email, user.UserName, txt, link, title))
                    {
                        return(StatusCode(StatusCodes.Status200OK));
                    }
                }
                else
                {
                    return(BadRequest(result.Errors));
                }
            }
            return(StatusCode(StatusCodes.Status400BadRequest));
        }
        public async Task <IActionResult> Register(RegisterModel model)
        {
            if (model == null)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                var newUser = new ApplicationUser();
                newUser.Email    = model.Email;
                newUser.UserName = model.UserName;
                var result = await _manger.CreateAsync(newUser, model.Password);

                if (result.Succeeded)
                {
                    //Generate Link
                    //http://localhost:60761/Account/RegistertionConfirm?ID=449448&Token=hids56sfs
                    var token = await _manger.GenerateEmailConfirmationTokenAsync(newUser);

                    //var confirmLinkAsp = Url.Action("RegistertionConfirm", "Account", new
                    //{ ID = newUser.Id, Token = HttpUtility.UrlEncode(token) }, Request.Scheme);

                    var encodeToken = Encoding.UTF8.GetBytes(token);
                    var newToken    = WebEncoders.Base64UrlEncode(encodeToken);
                    var confirmLink = $"http://localhost:4200/registerconfirm?ID={newUser.Id}&Token={newToken}";
                    //SendGridAPI
                    var subject     = "Registertion Confirm";
                    var content     = "Please Confirm your registertion in our site";
                    var htmlContent = "<a href = \"" + confirmLink + "\"> Confirm Registrion</a>";
                    if (await SendGridAPI.Execute(newUser.Email, newUser.UserName, subject, content, htmlContent))
                    {
                        return(StatusCode(StatusCodes.Status200OK));
                    }
                }
                else
                {
                    return(BadRequest(result.Errors));
                }
            }
            return(StatusCode(StatusCodes.Status400BadRequest));
        }
示例#5
0
 public async Task SendAsync(IdentityMessage message)
 {
     // Plug in your email service here to send an email.
     await SendGridAPI.SendEmail(message);
 }