public override object ExecuteCommand(InCourseRequest inCourseRequest) { string response = string.Empty; if (valida) { InfoCliente infoCliente = new InfoCliente(Utils.GetIpAddress(), inCourseRequest.Origen); UsuarioEntity usuarioEntity = new UsuarioEntity() { Username = NombreUsuario, Pass = Password }; M4TraderUserSessionLogin userSession = LoginHelper.Login(NombreUsuario, Password, infoCliente, TipoAplicacion.API); if (userSession.Ok && userSession.DobleAutenticacion == false) { response = MAEUserSession.Instancia.ID; } else if (userSession.Ok && userSession.DobleAutenticacion == true) { TwoFactorAuthenticator autenticador = new TwoFactorAuthenticator(); //var setupInfo = autenticador.GenerateSetupCode("M4Trader", //userSession.TokenGuid, //"ALSKDMASKLDMKALDKSA", 300, 300); } else { response = userSession.Message; } } return(ExecutionResult.ReturnInmediatelyAndQueueOthers(response)); }
public override object ExecuteCommand(InCourseRequest inCourseRequest) { string response = string.Empty; if (valida) { UsuarioEntity usuarioEntity = new UsuarioEntity() { Username = NombreUsuario, Pass = Password }; TwoFactorAuthenticator twoFA = new TwoFactorAuthenticator(); string userUniqueKey = NombreUsuario + "qaz123"; bool isValid = twoFA.ValidateTwoFactorPIN(userUniqueKey, M4TraderPin); if (isValid) { InfoCliente infoCliente = new InfoCliente(Utils.GetIpAddress(), inCourseRequest.Origen); M4TraderUserSessionLogin userSession = LoginHelper.Login2FA(NombreUsuario, Password, infoCliente, TipoAplicacion.API, isValid); } //response = "Is Valod"; } return(ExecutionResult.ReturnInmediatelyAndQueueOthers(response)); }
public static M4TraderUserSessionLogin Login(string userName, string password, InfoCliente infoCliente, TipoAplicacion tipoAplicacion, string NombreAgencia = null, bool passHashed = false) { UserValido resultValidacion = new UserValido(); try { resultValidacion = ValidateUser(userName, password, infoCliente, tipoAplicacion, NombreAgencia, passHashed); } catch (SessionException ex) { resultValidacion.NeedNewPassword = true; resultValidacion.IsOK = false; resultValidacion.MensajeError = ex.Code; resultValidacion.TokenGuid = ""; } MAEUserSession usuarioSession = null; if (MAEUserSession.InstanciaCargada) { usuarioSession = MAEUserSession.Instancia; } M4TraderUserSessionLogin userSessionLogin = new M4TraderUserSessionLogin() { Ok = resultValidacion.IsOK, DobleAutenticacion = CachingManager.Instance.GetConfiguracionSeguridad().TieneDobleFactor, Message = resultValidacion.MensajeError, NeedNewPassword = resultValidacion.NeedNewPassword, TokenGuid = resultValidacion.TokenGuid, SessionId = (usuarioSession == null) ? "" : usuarioSession.ID, IdUsuario = usuarioSession.IdUsuario, IdTipoPersona = usuarioSession.IdTipoPersona, UserName = (usuarioSession == null) ? "" : usuarioSession.UserName, EstadoSistema = (usuarioSession == null) ? "" : usuarioSession.EstadoSistema, TipoPersona = (usuarioSession == null) ? "" : UserHelper.getNombreTipoPersona(usuarioSession.IdTipoPersona), NombrePersona = (usuarioSession == null) ? "" : UserHelper.GetNombrePersona(usuarioSession.IdPersona), FechaSistema = CachingManager.Instance.GetFechaSistema().FechaSistema, FechaFinalizacionSesion = (usuarioSession == null) ? DateTime.Now : usuarioSession.FechaFinalizacion, JavascriptAllowedCommands = (usuarioSession == null) ? new System.Collections.Generic.Dictionary <string, string>() :usuarioSession.JavascriptAllowedCommands, PermisosUsuario = (usuarioSession == null) ? new System.Collections.Generic.Dictionary <string, bool>() : usuarioSession.PermisosUsuario, LoginRealizado = (usuarioSession == null) ? false : usuarioSession.LoginRealizado, }; return(userSessionLogin); }
public override ExecutionResult ExecuteCommand(InCourseRequest inCourseRequest) { MAEUserSession usuarioSession = SessionHelper.GetSesionExistente(inCourseRequest.SecurityTokenId); M4TraderUserSessionLogin userSessionLogin = new M4TraderUserSessionLogin() { SessionId = usuarioSession.ID, UserName = usuarioSession.UserName, EstadoSistema = usuarioSession.EstadoSistema, TipoPersona = UserHelper.getNombreTipoPersona(usuarioSession.IdTipoPersona), NombrePersona = UserHelper.GetNombrePersona(usuarioSession.IdPersona), FechaSistema = CachingManager.Instance.GetFechaSistema().FechaSistema, FechaFinalizacionSesion = usuarioSession.FechaFinalizacion, JavascriptAllowedCommands = usuarioSession.JavascriptAllowedCommands, PermisosUsuario = usuarioSession.PermisosUsuario }; return(ExecutionResult.ReturnInmediatelyAndQueueOthers(userSessionLogin)); }
public override object ExecuteCommand(InCourseRequest inCourseRequest) { TravelLogin response = new TravelLogin(); if (valida) { InfoCliente infoCliente = new InfoCliente(Utils.GetIpAddress(), inCourseRequest.Origen); UsuarioEntity usuarioEntity = new UsuarioEntity() { Username = NombreUsuario, Pass = Password, Agencia = inCourseRequest.Agencia }; M4TraderUserSessionLogin userSession = LoginHelper.Login(NombreUsuario, Password, infoCliente, TipoAplicacion.API, usuarioEntity.Agencia); if (userSession.Ok && !userSession.DobleAutenticacion) { response.Token = MAEUserSession.Instancia.ID; response.IdUsuario = userSession.IdUsuario; response.IdTipoPersona = userSession.IdTipoPersona; response.TipoPersona = userSession.TipoPersona; response.Status = 1; } else if (userSession.DobleAutenticacion) { response.Message = "Ingrese nuevo control "; response.Status = 2; } else { response.Message = userSession.Message; response.Status = 3; } } return(ExecutionResult.ReturnInmediatelyAndQueueOthers(response)); }
//public void ClearSession(Guid idSesion) //{ // string keyCache = KEY_SESSION_BY_ID + idSesion.ToString(); // MAEUserSession session = CacheLayer.Get<MAEUserSession>(keyCache); // if (session != null) // { // CacheLayer.Clear(keyCache); // } //} public M4TraderUserSessionLogin GetMaeUserSessionLogin(string idSesion, long idAplicacion = (long)TipoAplicacion.ORDENES) { string keyCache = KEY_SESSION_BY_ID_LOGIN + idSesion.ToString(); M4TraderUserSessionLogin session = CacheLayer.Get <M4TraderUserSessionLogin>(keyCache); if (session == null) { Dictionary <string, string> javascriptAllowedCommands = new Dictionary <string, string>(); Guid IdSesion = OrdenesApplication.Instance.GetSessionIdFromRequest(idSesion); int IdUsuario = 0; Dictionary <string, int> mapeoAcciones = new Dictionary <string, int>(); var Acciones = CachingManager.Instance.GetAllAcciones(); OrdenesApplication.Instance.GetComandosHabilitados((TipoAplicacion)idAplicacion) .ForEach(cmd => { var k = OrdenesApplication.Instance.Encryptor.DynamicEncryption(cmd.FullName); javascriptAllowedCommands.Add(cmd.Key, k); mapeoAcciones.Add(k, cmd.IdAccion); }); using (OrdenesContext dbContext = new OrdenesContext()) { var sesion = dbContext.Sesion.Where(x => x.IdSesion == IdSesion).FirstOrDefault(); IdUsuario = sesion.IdUsuario; int idEstadoSistema = dbContext.EstadoSistema.Where(p1 => p1.IdEstadoSistema != 0).Max(r => r.IdEstadoSistema); var estadoSistema = dbContext.EstadoSistema.Where(p => p.IdEstadoSistema == idEstadoSistema).FirstOrDefault(); session = (from s in dbContext.Sesion join u in dbContext.Usuario on s.IdUsuario equals u.IdUsuario join p in dbContext.Persona on u.IdPersona equals p.IdParty where s.IdSesion == IdSesion select new M4TraderUserSessionLogin() { Ok = true, NombrePersona = p.Name, TipoPersona = UserHelper.getNombreTipoPersona(p.IdPartyType), EstadoSistema = estadoSistema.EstadoAbierto ? "Abierto" : "Cerrado", UserName = u.Nombre, JavascriptAllowedCommands = javascriptAllowedCommands, FechaFinalizacionSesion = s.FechaFinalizacion, PermisosUsuario = new Dictionary <string, bool>() } ).FirstOrDefault(); } if (session != null) { List <Permiso> PermisosUsuario = CachingManager.Instance.GetAllPermisosByIdUsuario(IdUsuario); foreach (KeyValuePair <string, int> kv in mapeoAcciones) { Permiso p = PermisosUsuario.Find(x => x.IdAccion == kv.Value); if (p != null) { var permisoAccion = Acciones.Find(x => x.IdAccion == kv.Value).HabilitarPermisos; bool habilitado = (p.Permisos & permisoAccion) != 0; session.PermisosUsuario.Add(kv.Key, habilitado); } } CacheLayer.Add(session, keyCache); } else { session = new M4TraderUserSessionLogin() { Ok = false, Message = "Sesión Expirada" }; } } return(session); }