Exemple #1
0
        public static M4TraderUserSessionLogin Login2FA(string userName, string password, InfoCliente infoCliente, TipoAplicacion tipoAplicacion, bool isValid, string NombreAgencia = null, bool passHashed = false)
        {
            UserValido resultValidacion = new UserValido();

            try
            {
                resultValidacion = ValidateUser(userName, password, infoCliente, tipoAplicacion, NombreAgencia, passHashed, isValid);
            }

            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,
                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);
        }
Exemple #2
0
        private static UserValido ValidateUser(string UserName, string Password, InfoCliente infoCliente, TipoAplicacion tipoAplicacion, string NombreAgencia = null, bool passHashed = false, bool isValid = false)
        {
            var configuracionSeguridad = CachingManager.Instance.GetConfiguracionSeguridad();

            Guid       tokenGuid;
            UserValido response = new UserValido();

            response.IsOK = false;
            try
            {
                if (string.IsNullOrEmpty(UserName) || string.IsNullOrEmpty(Password))
                {
                    response.MensajeError = "El nombre de usuario y la contraseña no pueden estar vacíos.";
                    response.IsOK         = false;
                    return(response);
                }

                tokenGuid = DoLogIn(UserName, Password, infoCliente, tipoAplicacion, NombreAgencia, passHashed, isValid);

                if (tokenGuid != Guid.Empty)
                {
                    response.IsOK      = true;
                    response.TokenGuid = tokenGuid.ToString();
                    int          IdUsuario           = CachingManager.Instance.GetUsuarioByUsername(UserName).IdUsuario;
                    DTOPortfolio portfolioPorDefecto = CachingManager.Instance.GetPortfolioDefaultByIdUsuario(IdUsuario);
                    if (portfolioPorDefecto == null)
                    {
                        response.MensajeError = "El Usuario debe tener al menos un portfolio por defecto!.";
                        response.IsOK         = false;
                        return(response);
                    }
                }
                else
                {
                    response.MensajeError = "Verifique el nombre de usuario y contraseña.";
                    response.IsOK         = false;
                }
            }
            catch (M4TraderApplicationException ex)
            {
                if (ex.Codigo == "W100002")
                {
                    response.MensajeError    = "Por políticas de seguridad debe cambiar la contraseña.";
                    response.IsOK            = false;
                    response.NeedNewPassword = true;
                    return(response);
                }
                else
                {
                    response.MensajeError = ex.Message;
                    response.IsOK         = false;
                }
            }
            catch (SessionException ex)
            {
                if (ex.Code == "W100002")
                {
                    response.NeedNewPassword = true;
                    response.MensajeError    = "Por políticas de seguridad debe cambiar la contraseña.";
                    response.IsOK            = false;
                    return(response);
                }
                else
                {
                    response.MensajeError = ex.Message;
                    response.IsOK         = false;
                }
            }
            catch (Exception ex)
            {
                response.MensajeError = ex.Message;
                response.IsOK         = false;
            }
            return(response);
        }
        public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            InfoCliente infoCliente = new InfoCliente(IP, "WebExterna");

            return(ExecutionResult.ReturnInmediatelyAndQueueOthers(LoginHelper.Login(UserName, Password, infoCliente, TipoAplicacion.DMA)));
        }