public Task <ClaimsPrincipal> AuthenticateLoginAsync(PostUserLogin loginEntity) { lock (authenticationServiceLock) { return(Task.Run(() => { var user = userRepository.GetUserLogin(loginEntity.Username); if (user == null) { return null; } if (userConnectionsService.GameConnectionService.GetConnection(user.UserLoginID) != null || userConnectionsService.ChatConnectionService.GetConnection(user.UserLoginID) != null) { return null; } if (!Authentication.AuthenticateLoginCredentials(user.PasswordSalt, loginEntity.Password, user.PasswordHash)) { return null; } return GetClaimsPrincipal(user); })); } }
public async Task <IActionResult> PostAsync([FromBody] PostUserLogin loginEntity) { var claimsPrincipal = await authenticationService.AuthenticateLoginAsync(loginEntity); if (claimsPrincipal == null) { return(NotFound()); } await HttpContext.SignInAsync ( Security.AuthenticationScheme, claimsPrincipal ); return(Ok(claimsPrincipal.ApiGetUser())); }