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) })); } }
public LoginViewModel(LoginFormModel form) { if (form != null) { base.UserName = form.UserName; base.ResumeUrl = form.ResumeUrl; } }
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) })); } }