public async Task <IActionResult> Login(LoginFormModel form)
        {
            if (ModelState.IsValid == false)
            {
                return(View(new LoginViewModel(form)
                {
                    ExternalLoginList = GetExternalLoginViewModels(form.ResumeUrl)
                }));
            }

            if (_userStore.ValidateCredentials(form.UserName, form.Password))
            {
                var user = _userStore.FindByUsername(form.UserName);
                await HttpContext.Authentication.SignInAsync(user.SubjectId, user.Username);

                if (_idsInteraction.IsValidReturnUrl(form.ResumeUrl) || Url.IsLocalUrl(form.ResumeUrl))
                {
                    return(Redirect(form.ResumeUrl));
                }

                return(Redirect("~/"));
            }
            else
            {
                ViewBag.Error = "invalid username or password.";
                return(View(new LoginViewModel(form)
                {
                    ExternalLoginList = GetExternalLoginViewModels(form.ResumeUrl)
                }));
            }
        }
Beispiel #2
0
 public LoginViewModel(LoginFormModel form)
 {
     if (form != null)
     {
         base.UserName  = form.UserName;
         base.ResumeUrl = form.ResumeUrl;
     }
 }
Beispiel #3
0
        public async Task <IActionResult> Login(LoginFormModel form)
        {
            if (ModelState.IsValid == false)
            {
                return(View(new LoginViewModel(form)
                {
                    ExternalLoginList = await GetExternalLoginViewModels(form.ResumeUrl)
                }));
            }

            if (_userStore.ValidateCredentials(form.UserName, form.Password))
            {
                var user       = _userStore.FindByUsername(form.UserName);
                var properties = new AuthenticationProperties
                {
                    IsPersistent = true,
                    ExpiresUtc   = DateTimeOffset.UtcNow.AddHours(1)
                };
                var isuser = new IdentityServerUser(user.SubjectId)
                {
                    DisplayName = user.Username
                };
                await HttpContext.SignInAsync(isuser, properties);

                if (_idsInteraction.IsValidReturnUrl(form.ResumeUrl) || Url.IsLocalUrl(form.ResumeUrl))
                {
                    return(Redirect(form.ResumeUrl));
                }

                return(Redirect("~/"));
            }
            else
            {
                ViewBag.Error = "invalid username or password.";
                return(View(new LoginViewModel(form)
                {
                    ExternalLoginList = await GetExternalLoginViewModels(form.ResumeUrl)
                }));
            }
        }