public async Task <IActionResult> Login(string returnUrl, [Bind("Username,Password")] LoginEditModel form) { var authenticationResult = await _authUserService.Authenticate( new UsernamePasswordCredentials { Username = form?.Username, Password = new PlainTextPassword(form?.Password) }); if (authenticationResult is AuthenticationFailure <UsernamePasswordAuthenticateFailureReason> failure) { var loginViewModel = new LoginDisplayModel { ReturnUrl = returnUrl, Form = form }; loginViewModel.AddFailureToModelState(failure, ModelState); return(View("Index", loginViewModel)); } if (authenticationResult is AuthenticationSuccess authenticationSucces) { var principal = authenticationSucces.Principal; await HttpContext.SignInAsync(principal); } return(returnUrl != null ? Redirect(returnUrl) as IActionResult : RedirectToAction("Index", "Home")); }
public async Task <IActionResult> Login(LoginEditModel form, [FromServices] LoginRequestAsync request) { var result = await request.HandleAsync(form); if (result.Succeeded) { if (form.ReturnUrl.HasValue()) { return(Redirect(form.ReturnUrl)); } return(RedirectToAction(nameof(AccountController.Index))); } if (result.RequiresTwoFactor) { return(RedirectToAction(nameof(AccountController.SendCode), new { ReturnUrl = form.ReturnUrl, RememberMe = form.RememberLogin })); } if (result.IsLockedOut) { ModelState.AddModelError(String.Empty, ACCOUNT_LOCKED); return(View(form)); } ModelState.AddModelError(String.Empty, "Invalid username and/or password"); return(View(form)); }
public async Task <ActionResult> ExternaRegister(LoginEditModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Admin")); } if (ModelState.IsValid) { var info = await _authenticationService.GetExternalLoginInfoAsync(); if (info == null) { AddError("认证失败"); return(RedirectToAction("Login")); } string avatarUrl = info.ExternalIdentity.FindFirstValue("urn:QQ:avatar"); ViewBag.Avatar = avatarUrl; if (_userService.FindByName(model.UserName) != null) { AddError("用户名已存在"); return(View(model)); } if (_userService.FindByTrueName(model.NickName) != null) { AddError("昵称已存在"); return(View(model)); } var user = new User(model.UserName, model.NickName); var result = await _userService.CreateAsync(user, model.Password); if (result.Succeeded) { await _userService.AddClaimAsync(user.Id, new Claim("avatar", avatarUrl)); result = await _userService.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await _signInService.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(Redirect(returnUrl)); } } else { AddError(result); return(View(model)); } } ViewBag.ReturnUrl = returnUrl; AddError("未知错误"); return(View(model)); }
public async Task <ActionResult> Login(LoginEditModel model) { string modelName = Request.Browser.IsMobileDevice ? "MobileLogin" : "Login"; if (!ModelState.IsValid) { return(View(modelName, model)); } string message = string.Empty; var userAdjust = _userService.FindByTrueName(model.UserName); if (userAdjust == null) { AddError("用户名或密码错误"); return(View(modelName, model)); } if (userAdjust.IsBlackUser == true) { AddError("该用户已被列为黑名单"); } else { if (string.IsNullOrEmpty(model.Password)) { AddError("请输入密码"); return(View(modelName, model)); } var getUser = await _userService.FindAsync(model.UserName, model.Password); //var result = await _userService.AddLoginAsync(getUser.Id, new UserLoginInfo("loginProvider", "providerKey"));//通过User添加登录信息 if (getUser != null) { _signInService.SetCurrentUser(getUser); await _signInService.SignInAsync(getUser, isPersistent : false, rememberBrowser : false); if (!string.IsNullOrEmpty(model.ReturnUrl) && Request.ApplicationPath != model.ReturnUrl) { return(Redirect(WebHelper.ResolveUrl("~/" + model.ReturnUrl))); } return(RedirectToAction("Index", "Admin")); } AddError("用户名或密码错误"); } if (Request.Browser.IsMobileDevice) { return(View(modelName, model)); } return(View(modelName, model)); }
public async Task <IActionResult> Login(LoginEditModel model, string returnUrl) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var result = await _userStore.LoginAsync(HttpContext, model.UserName, model.Password, model.RememberMe); if (result.Success) { return(RedirectToLocal(returnUrl)); } ModelState.AddModelError(string.Empty, result.Error); } return(View(model)); }
public async Task <ActionResult> Login(LoginEditModel model, string returnUrl) { if (ModelState.IsValid) { var user = await _userManager.FindAsync(model.UserName, model.Password); if (user != null) { await _userManager.UpdateSecurityStampAsync(user.Id); await SignInAsync(user, model.RememberMe); return(RedirectToLocal(returnUrl)); } ModelState.AddModelError("", "Hatalı kullanıcı adı veya şifre girdiniz"); } return(View(model)); }