public HttpResponseMessage Login(AppUserLoginRequest appUserLoginRequest) { LoginResult result = appUserService.Login(appUserLoginRequest); if (result != null && result.Id.HasValue) { // log in success // this sets the cookie authService.LogIn(new UserBase { // userId = User.Identity.GetId().Value; Id = result.Id.Value, TenantId = result.TenantId.Value, Name = "", Roles = new string[0] }); return(Request.CreateResponse(HttpStatusCode.OK, new ItemResponse <LoginResult> { Item = result })); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, new ErrorResponse("Invalid username or password"))); } }
public async Task <JsonResult> Login(LoginViewModel account) { var service = new AppUserService(); var model = new LoginViewModel(); await TryUpdateModelAsync(model); if (!ModelState.IsValid) { List <string> errorMsg = new List <string>(); foreach (var key in ModelState.Keys) { var errors = ModelState[key].Errors.ToList(); foreach (var error in errors) { errorMsg.Add(error.ErrorMessage); } } return(Json(ResultUtil.AuthFail(string.Join(";", errorMsg)))); } if (account.VerifyCode.ToLower() != HttpContext.Session.GetString("LoginValidateCode").ToLower()) { return(Json(ResultUtil.AuthFail("验证码错误"))); } var user = service.Login(model.Name.Trim(), model.Pw.Trim()); if (user.Code != 200) { return(Json(ResultUtil.AuthFail(user.Message))); } else { ClaimsIdentity identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme); identity.AddClaim(new Claim(ClaimTypes.Name, user.Body.Name)); identity.AddClaim(new Claim(ClaimTypes.Role, user.Body.Role)); identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Body.Id.ToString())); ClaimsPrincipal principal = new ClaimsPrincipal(identity); await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal, new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.Today.AddDays(7), RedirectUri = "/Login" }); HttpContext.Session.Set <AppUser>("User", new AppUser { Id = user.Body.Id, Name = user.Body.Name, Role = user.Body.Role }); return(Json(new Result { Code = 200, Message = "" })); } }
public async Task <ActionResult <UserDto> > Login(LoginDto loginDto) { var appUser = await _appUserService.Login(loginDto); if (appUser == null) { return(BadRequest("Invalid username or password")); } return(new UserDto { Username = appUser.UserName, Token = _tokenService.CreateToken(appUser) }); }