Пример #1
0
        public async Task <IActionResult> Login(string email, string password, string remember, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;


            var user = _userManager.FindByNameAsync(email).Result;

            if (user != null)
            {
                if (!_userManager.IsEmailConfirmedAsync
                        (user).Result)
                {
                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, token = code }, protocol: HttpContext.Request.Scheme);

                    var model = new ViewModels.emailVerification {
                        UserName = user.FirstName + " " + user.LastName, Link = callbackUrl, Email = user.UserName
                    };

                    string viewHtml = await this.RenderViewAsync("emailVerification", model);

                    await SendEmail.SendEmailAsync(user.UserName, viewHtml);

                    //await SendEmail.SendEmailAsync(email, "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
                    TempData["msg"] = "Need Email Confirmation. A Confirmation email already sent." + Admin.EmailNotice;
                    return(View());
                }
            }

            var result = await _signInManager.PasswordSignInAsync(email,
                                                                  password, true, lockoutOnFailure : false);

            if (result.Succeeded)
            {
                //_logger.LogInformation(1, "User logged in.");
                return(RedirectToAction(nameof(LoginController.Home), "Login"));
                //return LocalRedirect(returnUrl);
            }
            //if (result.RequiresTwoFactor)
            //{
            //    return RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = true });
            //}
            //if (result.IsLockedOut)
            //{
            //    //_logger.LogWarning(2, "User account locked out.");
            //    return View("Lockout");
            //}
            //else
            //{
            //    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            //    return View(model);
            //}
            TempData["msg"] = "Invalid login attempt.";


            return(View());
        }
Пример #2
0
        public async Task <IActionResult> ReSendEmail(string email)
        {
            var user = _userManager.FindByNameAsync(email).Result;
            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, token = code }, protocol: HttpContext.Request.Scheme);

            var resendUrl = Url.Action("ReSendEmail", "Account", new { userId = user.Id }, protocol: HttpContext.Request.Scheme);

            var model = new ViewModels.emailVerification {
                UserName = user.FirstName + " " + user.LastName, Link = callbackUrl, Email = user.UserName
            };

            string viewHtml = await this.RenderViewAsync("emailVerification", model);

            await SendEmail.SendEmailAsync(user.UserName, viewHtml);

            //await SendEmail.SendEmailAsync(email, "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
            TempData["msg"] = "A Confirmation email already sent." + Admin.EmailNotice;
            return(RedirectToAction(nameof(AccountController.Login), "Account"));
        }
Пример #3
0
        public async Task <IActionResult> Register(string email, string password)
        {
            using (var client = new HttpClient())
            {
                var response = await client.GetAsync("https://disposable.debounce.io/?email=" + email);

                using (var content = response.Content)
                {
                    var json = await content.ReadAsStringAsync();

                    dynamic rslt = JsonConvert.DeserializeObject(json);
                    bool    v    = rslt.disposable;
                    if (v == true)
                    {
                        TempData["msg"] = "Temporary Email Not Accepted";
                        return(View());
                    }
                }
            }

            var user = new ApplicationUser {
                UserName = email, Email = email
            };
            var result = await _userManager.CreateAsync(user, password);

            if (result.Succeeded)
            {
                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                // Send an email with this link
                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, token = code, referral = Request.Query["referral"].ToString() }, protocol: HttpContext.Request.Scheme);

                //var resendUrl = Url.Action("ReSendEmail", "Account", new { email }, protocol: HttpContext.Request.Scheme);

                var model = new ViewModels.emailVerification {
                    UserName = user.FirstName + " " + user.LastName, Link = callbackUrl, Email = user.UserName
                };

                string viewHtml = await this.RenderViewAsync("emailVerification", model);

                await SendEmail.SendEmailAsync(user.UserName, viewHtml);

                //await SendEmail.SendEmailAsync(email, "Please confirm your account by clicking this link: <a href=\"" + callbackUrl + "\">link</a>");
                TempData["msg"] = "A Confirmation email already sent...Check your Email." + Admin.EmailNotice;
                return(RedirectToAction(nameof(AccountController.Login), "Account"));
                //await _signInManager.SignInAsync(user, isPersistent: false);
                //_logger.LogInformation(3, "User created a new account with password.");
                //return RedirectToAction(nameof(HomeController.Index), "Home");

                //return Content("Please check email to confirm your account ");
            }
            else
            {
                TempData["msg"] = result.Errors.First().Description;                //Newtonsoft.Json.JsonConvert.SerializeObject(result.Errors);
            }
            //AddErrors(result);


            return(View());
        }