public async Task <int> AzioniInsert(AzioniDto azioniDto) { try { if ((azioniDto.AzioneTipo != "login_ko" && azioniDto.AzioneTipo != "login_ok" && azioniDto.AzioneTipo != "logout_user")) { var data = await _unitOfWork.Azioni.FindByAzioniAsync(x => x.AzioneCliId.Equals(azioniDto.AzioneCliId) && x.AzioneUteId.Equals(azioniDto.AzioneUteId), 0); if (((DateTime.Now - data.AzioneInsTimestamp).TotalSeconds > 7200)) { throw new UnauthorizedAccessException("Token Expired"); } } // Model class mapping from AzioniDto to Azioni. var azioni = _mapper.Map <AzioniDto, Azioni>(azioniDto); azioni.AzioneInsTimestamp = DateTime.Now; azioni.AzioneModTimestamp = DateTime.Now; azioni.AzioneInizio = DateTime.Now; _unitOfWork.Azioni.Add(azioni); int logid = await _unitOfWork.CompleteAsync(); return(logid); } catch (Exception ex) { throw; } }
public AzioniDto GetAzioniDtoObject(ClaimsPrincipal User, string azioniTipo, string azioniDesc) { AzioniDto azioniDto = new AzioniDto(); azioniDto.AzioneTipo = azioniTipo; azioniDto.AzioneDescrizione = azioniDesc; var uteId = User.Claims.FirstOrDefault(x => x.Type.Equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"))?.Value; azioniDto.AzioneUteId = uteId; azioniDto.AzioneInsUteId = uteId; azioniDto.AzioneModUteId = uteId; azioniDto.AzioneCliId = User.Claims.FirstOrDefault(x => x.Type.Equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid"))?.Value; azioniDto.AzioneInizio = DateTime.Now; return(azioniDto); }
public async Task <AzioniDto> GetAzioniData(string cliId, string uteId, int noOfSkip) { try { Azioni azioni = await _unitOfWork.Azioni.FindByAzioniAsync(x => x.AzioneCliId.Equals(cliId) && x.AzioneUteId.Equals(uteId) && x.AzioneTipo == "login_ok", noOfSkip); AzioniDto azioniDto = _mapper.Map <Azioni, AzioniDto>(azioni); return(azioniDto); } catch (Exception) { throw; } }
public AzioniDto CreateAzioniObj(string desc, string tipo, string uteId, string cliId, string utePass) { if (tipo == "login_ko") { uteId = "system"; } AzioniDto azioniDto = new AzioniDto(); azioniDto.AzioneDescrizione = desc; azioniDto.AzioneTipo = tipo; azioniDto.AzioneDettaglio01 = uteId; azioniDto.AzioneDettaglio02 = utePass; azioniDto.AzioneDettaglio03 = cliId; azioniDto.AzioneUteId = uteId; azioniDto.AzioneInsUteId = uteId; azioniDto.AzioneModUteId = uteId; azioniDto.AzioneCliId = cliId; return(azioniDto); }
public async Task <IActionResult> postAzioni([FromBody] AzioniDto azioniDto) { try { if (azioniDto == null) { return(NotFound()); } await _azioniManager.AzioniInsert(azioniDto); return(Ok()); } catch (Exception x) { // Code block of Exception handling and logging into log_operazione table. var errorObj = await _utilityManager.ReturnErrorObj(x, User, "Insert Azioni"); // Returning the error object. return(BadRequest(errorObj)); } }
public async Task <IActionResult> Login([FromBody] UserLoginDto user) { if (!ModelState.IsValid) { return(NotFound(ModelState)); } try { var tipo = "login_ok"; // Check user valid or not var checkuser = await _authManager.ValidateUserAsync(user); HttpContext httpContext = this.HttpContext; var ip = httpContext.Connection.RemoteIpAddress.ToString(); // Getting the browser name var userAgent = httpContext.Request.Headers["User-Agent"]; string uaString = Convert.ToString(userAgent[0]); var uaParser = Parser.GetDefault(); ClientInfo c = uaParser.Parse(uaString); var description = $"IP -> {ip} . Client -> {c.UA} . OS -> {c.OS}"; var authHeader = Request.Headers["Authorization"].ToString(); AzioniDto azioniDto = CreateAzioniObj(description, tipo, user.UteId, user.UteCliId, user.UtePassword); if (checkuser.UteId == null) { tipo = "login_ko"; azioniDto = CreateAzioniObj(description, tipo, user.UteId, user.UteCliId, user.UtePassword); await _azioniManager.AzioniInsert(azioniDto); var result = new { error = "Login failed", error_type = "usrmsg_err", message = "L1008_wrongcredentials" }; return(BadRequest(result)); } // Find out five times failed login attempts var userHas5FailedAttempts = await _authManager.Has5ConsecutiveFailedAttemptsWithin5Miniutes(checkuser.UteId); if (userHas5FailedAttempts) { await _authManager.LockUser(user.UteId); tipo = "login_ko"; azioniDto = CreateAzioniObj(description, tipo, user.UteId, user.UteCliId, user.UtePassword); await _azioniManager.AzioniInsert(azioniDto); var result = new { error = "Login failed", error_type = "usrmsg_err", message = "L1002_userLocked" }; return(BadRequest(result)); } // Checking whether the user status is active or not if (checkuser.UteAttivo == "N") { tipo = "login_ko"; azioniDto = CreateAzioniObj(description, tipo, user.UteId, user.UteCliId, user.UtePassword); await _azioniManager.AzioniInsert(azioniDto); var result = new { error = "Login failed", error_type = "usrmsg_err", message = "L1001_userInactive" }; return(BadRequest(result)); } await _azioniManager.AzioniInsert(azioniDto); HttpContext.Session.SetObjectAsJson("userDto", checkuser); var userProfile = await _userManager.FindUserProfileData(user.UteId, user.UteCliId); return(Ok(new { Token = checkuser.Token, userAuthList = checkuser.userAuthList, Email = checkuser.UteMail, UserProfile = userProfile })); } catch (Exception x) { // Code block of Exception handling and logging into log_operazione table. var errorObj = await _utilityManager.ReturnErrorObj(x, User, "login_ko"); // Returning the error object. return(BadRequest(errorObj)); } }