public AuthResponse AuthUser(string userName, string psswdHash) { _connContext = _connContext.CheckDBConn(); var resp = new AuthResponse(); try { ValidationUtil.ValidateAuthInput(userName, psswdHash); PtService.NhibernateImpl.DAOs.Impl.Kasutaja principal = _connContext._KasutajaDAO.GetKasutaja(userName, psswdHash); if (principal == null) { throw new Exception("Kasutaja autentimine ebaõnnestus!"); } else if (principal.LoppKP > DateTime.Now) { throw new Exception("Puudub kehtiv kasutaja!"); } else if (principal.IsikID == null) { throw new Exception("Kasutajal puudub isik!"); } string validHandle = Utils.GenCryptoRndStr(); DateTime sessValidTo = DateTime.Now.AddMinutes(15); principal.SessionHandle = validHandle; principal.SessionValidTo = sessValidTo; _connContext._KasutajaDAO.Update(principal, principal.ID); resp.IsAuthenticated = true; resp.SessionValidFrom = DateTime.Now; resp.SessionHandle = validHandle; resp.SessionValidTo = sessValidTo; resp.Kasustaja = new Kasutaja(); resp.Kasustaja = Utils.CopyTo(principal, resp.Kasustaja); } catch (Exception exception) { resp = new AuthResponse {IsAuthenticated = false, AuthException = exception}; } return resp; }
private AuthResponse validateAuth(string sessionHandle) { var tulem = new AuthResponse(); PtService.NhibernateImpl.DAOs.Impl.Kasutaja daoKasutaja = null; try { daoKasutaja = ValidationUtil.CheckValidateHandle(sessionHandle, _connContext); } catch (Exception e) { tulem.IsAuthenticated = false; tulem.AuthException = e; return tulem; } DateTime newValidTo = DateTime.Now.AddMinutes(15); tulem.IsAuthenticated = true; tulem.Kasustaja = new Kasutaja(); tulem.Kasustaja = Utils.CopyTo(daoKasutaja, tulem.Kasustaja); //salvesta ajapikendus baasi daoKasutaja.SessionValidTo = newValidTo; _connContext._KasutajaDAO.Update(daoKasutaja, daoKasutaja.ID); tulem.SessionValidFrom = DateTime.Now; tulem.SessionValidTo = newValidTo; tulem.SessionHandle = daoKasutaja.SessionHandle; //ära edasta klientsüsteemile psswdHas välja tulem.Kasustaja.PsswdHash = null; return tulem; }