public vTipoSeguridadAdministrar AdministrarTipoSeguridad(vTipoSeguridad obj)
        {
            try
            {
                vTipoSeguridadAdministrar objRetorno = new vTipoSeguridadAdministrar();
                Fachada.FSeguridad        objFachada = new FSeguridad();

                if (string.IsNullOrEmpty(obj.NombreOrganizacion.Trim()))
                {
                    objRetorno.ResultadoEjecucion = false;
                    objRetorno.MensajeError       = "El nombre de la organización es un dato obligatorio";
                    return(objRetorno);
                }
                if (obj.optIntegrada)
                {
                    if (string.IsNullOrEmpty(obj.NombreDominio.Trim()))
                    {
                        objRetorno.ResultadoEjecucion = false;
                        objRetorno.MensajeError       = "El nombre de dominio es un dato obligatorio";
                        return(objRetorno);
                    }
                }
                else
                {
                    if (obj.validar)
                    {
                        if (string.IsNullOrEmpty(obj.NombreDominio.Trim()))
                        {
                            objRetorno.ResultadoEjecucion = true;
                            objRetorno.preguntar          = true;
                            objRetorno.MensajeError       = "No se ha ingresado un nombre de Dominio, solo se podrán ingresar usuarios no integrados a un dominio. ¿Continúa?";
                            return(objRetorno);
                        }
                    }
                }
                string strRetorno = "";
                if (!string.IsNullOrEmpty(obj.NombreDominio.Trim()) && obj.NombreDominio.Trim().ToUpper() != "NULL")
                {
                    if (string.IsNullOrEmpty(obj.Usuario.Trim()))
                    {
                        objRetorno.ResultadoEjecucion = false;
                        objRetorno.MensajeError       = "El nombre del usuario es un dato obligatorio";
                        return(objRetorno);
                    }

                    if (obj.validar)
                    {
                        objRetorno.ResultadoEjecucion = true;
                        objRetorno.preguntar          = true;
                        objRetorno.MensajeError       = "A continuación" + " va a verificar si nombre de dominio " + obj.NombreDominio + " es válido. Esta operación puede tardar cierto tiempo. ¿Continúa?";
                        return(objRetorno);
                    }
                    if (obj.validarDominio)
                    {
                        string strDomino = "";
                        strDomino = ObtenerPrimaryDomain(obj.NombreDominio, obj.Usuario, obj.Clave);
                        if (string.IsNullOrEmpty(strDomino))
                        {
                            objRetorno.ResultadoEjecucion = false;
                            objRetorno.MensajeError       = "No se ha podido validar la existencia del domino " + obj.NombreDominio + ". Verifique los datos ingresados.";
                            return(objRetorno);
                        }
                        strRetorno = strDomino;
                    }
                }

                strRetorno += "æ" + obj.NombreOrganizacion.Trim() + ((obj.optCIPOL) ? "æ1" : "");


                TresDES objEncriptarNET;

                objEncriptarNET     = new TresDES();
                objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;
                objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;


                if (objFachada.ActualizarTipoSeguridad(objEncriptarNET.Criptografia(Accion.Encriptacion, strRetorno)))
                {
                    objRetorno.ResultadoEjecucion = true;
                    objRetorno.MensajeServicio    = "Deberá reiniciar la aplicación para que los cambios tengan efecto.";
                    return(objRetorno);
                }
                else
                {
                    objRetorno.ResultadoEjecucion = true;
                    objRetorno.MensajeServicio    = "No se ha podido modificar el manejo de seguridad de CIPOL, por favor vuelva a intentar.";
                    return(objRetorno);
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Exemple #2
0
        /// <summary>
        /// Realizar el inicio de sesión para un usuario en la BD.
        /// </summary>
        /// <param name="NombreUsuario"></param>
        /// <param name="Pwd"></param>
        /// <returns>Objeto "RetornoInicioSesion" que indica el Resultado(true o false), Datos Globales del Sistema, el objeto Usuario CIPOL y un posible Mensaje de error.</returns>
        /// <history>
        /// [MartinV]          [jueves, 25 de septiembre de 2014]       Modificado  GCP-Cambios 15585
        /// </history>
        private mFormLogin IniciarSesion(string NombreUsuario, string Pwd, System.Net.CookieContainer cokie, string ip)
        {
            ///'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            //                    DESCRIPCION DE VARIABLES LOCALES
            //strUsuario : Nombre del usuario
            //objProxy   : objeto proxy de conexion al servicio web
            //strCipol   : objeto serializado de sipol,
            //strErro    : string con mensaje de error si lo hubiera.
            //objEncSer  : Objeto de encriptación RSA que contiene la clave pública
            //             del servidor
            //strClave   : Clave de encriptación
            //objEncCli  : Objeto de encriptación RSA que contiene la clave pública
            //             y privada del cliente
            ///'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            string strUsuario = null;

            COA.WebCipol.Fachada.FInicioSesion facInicioSesion = new COA.WebCipol.Fachada.FInicioSesion();
            string     strCipol    = null;
            string     strError    = "";
            string     strClave    = null;
            string     strTerminal = null;
            mFormLogin objRetIS    = new mFormLogin();

            //Define variables locales.
            //System.Runtime.Serialization.Formatters.Binary.BinaryFormatter objDeserializador;
            //System.IO.MemoryStream objFlujo;

            byte[] bytPub;
            System.Security.Cryptography.RSACryptoServiceProvider objEncServ = new System.Security.Cryptography.RSACryptoServiceProvider();
            System.Security.Cryptography.RSACryptoServiceProvider objEncCli  = new System.Security.Cryptography.RSACryptoServiceProvider();

            EntidadesEmpresariales.PadreCipolCliente objUsuarioCipol;

            TresDES objEncriptarNET;
            General objGeneral;

            try
            {
                strUsuario = NombreUsuario.Trim();
                if (string.IsNullOrEmpty(strUsuario))
                {
                    objRetIS.Mensaje = "El nombre del usuario es un dato obligatorio.";
                    objRetIS.ResultadoProcesoInicioSesion = false;
                    return(objRetIS);
                }
                if (Pwd.Trim() == string.Empty)
                {
                    objRetIS.Mensaje = "La contraseña es un dato obligatorio.";
                    objRetIS.ResultadoProcesoInicioSesion = false;
                    return(objRetIS);
                }

                strClave = Pwd;
                ManejoSesion.CookieMaster = cokie;
                System.Net.CookieContainer objCookieMASTER = ManejoSesion.CookieMaster;

                bytPub = facInicioSesion.GetClavePublica(objEncCli.ExportCspBlob(false), objCookieMASTER);
                if ((bytPub == null))
                {
                    objRetIS.Mensaje = "No se ha podido recuperar la clave pública.";
                    objRetIS.ResultadoProcesoInicioSesion = false;
                    return(objRetIS);
                }
                // Prepara el algoritmo asimétrico del servidor
                objEncServ.ImportCspBlob(bytPub);
                // Encripta con la clave pública
                strClave = System.Convert.ToBase64String(objEncServ.Encrypt(System.Text.UTF8Encoding.UTF8.GetBytes(strClave), false));

                strTerminal = COA.WebCipol.Presentacion.Utiles.cPrincipal.ObtenerTerminal(ip);

                strCipol = facInicioSesion.IniciarSesion(strUsuario, strTerminal, ref strError, strClave, objCookieMASTER);
                if (strCipol == null || string.IsNullOrEmpty(strCipol))
                {
                    objRetIS.Mensaje = "No se ha podido iniciar sesión" + (String.IsNullOrEmpty(strError) ? "" : ": " + strError).ToString();
                    objRetIS.ResultadoProcesoInicioSesion = false;
                    return(objRetIS);
                }
                if (Validaciones.ValidarCadenaNulaOVacia(strError))
                {
                    objRetIS.Mensaje = strError;
                    objRetIS.ResultadoProcesoInicioSesion = false;
                    return(objRetIS);
                }

                //Dim objFlujo As System.IO.MemoryStream
                System.IO.MemoryStream objFlu;
                //Dim objDeserializador As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter objDeser = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                //Dim objSerializar As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter objSerializar = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                //objFlujo = New System.IO.MemoryStream(System.Convert.FromBase64CharArray(pStrCipol.ToCharArray, 0, pStrCipol.Length))
                objFlu = new System.IO.MemoryStream(System.Convert.FromBase64CharArray(strCipol.ToCharArray(), 0, strCipol.Length));

                //gobjUsuarioCipol = CType(objDeserializador.Deserialize(objFlujo), EntidadesEmpresariales.PadreCipolCliente)
                objUsuarioCipol = (EntidadesEmpresariales.PadreCipolCliente)objDeser.Deserialize(objFlu);


                //Desencripta los valores encriptados en el servidor con la clave pública del RSA cliente
                //gobjUsuarioCipol.OtrosDatos("clave.usuario", System.Text.UTF8Encoding.UTF8.GetString(objEncCli.Decrypt(System.Convert.FromBase64String(gobjUsuarioCipol.OtrosDatos("clave.usuario")), False)))
                objUsuarioCipol.OtrosDatos("clave.usuario", System.Text.UTF8Encoding.UTF8.GetString(objEncCli.Decrypt(System.Convert.FromBase64String(objUsuarioCipol.OtrosDatos("clave.usuario")), false)));

                //gobjUsuarioCipol.Key = System.Convert.ToBase64String(objEncCli.Decrypt(System.Convert.FromBase64String(gobjUsuarioCipol.Key), False))
                objUsuarioCipol.Key = System.Convert.ToBase64String(objEncCli.Decrypt(System.Convert.FromBase64String(objUsuarioCipol.Key), false));

                //gobjUsuarioCipol.IV = System.Convert.ToBase64String(objEncCli.Decrypt(System.Convert.FromBase64String(gobjUsuarioCipol.IV), False))
                objUsuarioCipol.IV = System.Convert.ToBase64String(objEncCli.Decrypt(System.Convert.FromBase64String(objUsuarioCipol.IV), false));

                //TODO: VER QUE PASA CON LAS COOKIES
                //gobjUsuarioCipol.objColeccionDeCookies = pCookies
                //objUsuarioCipol.objColeccionDeCookiesCipol =

                //gobjUsuarioCipol.gobjRSAServ = objEncServ.ExportCspBlob(False)
                objUsuarioCipol.gobjRSAServ = objEncServ.ExportCspBlob(false);

                //gobjUsuarioCipol.OtrosDatos("urlwsInicioSesion", UrlWsInicioSesion)

                //objFlujo = New System.IO.MemoryStream()
                //objFlu= new System.IO.MemoryStream();

                //objSerializar.Serialize(objFlujo, gobjUsuarioCipol)
                //objSerializar.Serialize(objFlu, objUsuarioCipol);

                //gstrUsuarioCipol = System.Convert.ToBase64String(objFlujo.ToArray())
                //gstrUsuarioCipol = System.Convert.ToBase64String(objFlujo.ToArray())

                //Crea el objeto para encriptar.
                objEncriptarNET     = new TresDES();
                objEncriptarNET.IV  = objUsuarioCipol.IV;
                objEncriptarNET.Key = objUsuarioCipol.Key;

                //Crea el objeto con datos generales del usuario/sistema.
                objGeneral = new General(System.Reflection.Assembly.GetExecutingAssembly());
                objGeneral.AcercaDe_Descripcion = "Componente de Seguridad. Desarrollado por COA S.A.";
                objGeneral.AcercaDe_Detalle     = "Configurador Interactivo de Políticas de seguridad de los sistemas. Resuelve las funciones operativas propias de la seguridad de sistemas (implementación de políticas, administración de usuarios,  roles, acceso a subsistemas).";
                //TODO: HAY QUE EVALUAR COMO SE TRABAJA CON ESTA INFORMACION SI ES NECESARIA
                //objGeneral.AcercaDe_Logo = objGeneral.RutaArchivos + "img_CIPOL_CIPOL.jpg";
                //objGeneral.AcercaDe_Logo = "Imagenes/prod_cipol.gif";//PRUEBA.. ver la imagen a poner!!
                //objGeneral.AcercaDe_Icono = objGeneral.RutaArchivos + "CIPOL32.ico";
                objGeneral.AcercaDe_Cliente = objUsuarioCipol.NombreOrganizacion;
                objGeneral.UsuarioCIPOL     = objUsuarioCipol.Login;

                objGeneral.Hoy = objUsuarioCipol.FechaServidor;

                //Pasa al objeto Datos Sistema, que se va a guardar en sesión.
                //objDatosS.NombreSistema = objGeneral.NombreSistema;
                //objDatosS.EncriptarNET = objEncriptarNET;
                DatosSistema objDatosS = new DatosSistema();
                objDatosS.DatosGenerales = objGeneral;

                //Pasa al objeto de Retorno.
                objRetIS.DatosSistema = objDatosS;
                DatosCIPOL objDatosC = new DatosCIPOL();
                objDatosC.DatosPadreCIPOLCliente = objUsuarioCipol;
                objDatosC.strCipol = strCipol;

                objDatosC.DatosPadreCIPOLCliente.objColeccionDeCookies      = objCookieMASTER;
                objDatosC.DatosPadreCIPOLCliente.objColeccionDeCookiesCipol = objCookieMASTER;

                objRetIS.DatosCipol = objDatosC;
                objRetIS.Mensaje    = "El proceso de inicio de sesión se realizó exitosamente";
                objRetIS.ResultadoProcesoInicioSesion = true;

                return(objRetIS);
            }
            catch (Exception ex)
            {
                COA.Logger.Logueador.Loggear(ex, System.Diagnostics.EventLogEntryType.Error);
                objRetIS.ResultadoProcesoInicioSesion = false;
                objRetIS.Mensaje = "Ocurrió un error en el proceso de inicio de sesión.";
                return(objRetIS);
            }
        }
Exemple #3
0
        public bool CargarParametros(ref string MensajeError)
        {
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            //Autor: Gustavo Mazzaglia
            //Fecha de creación: 28/12/2001
            //Modificaciones:
            //           09/09/2005 - Angel Lubenov - Gcp Cambios id:3044
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            //                  DESCRIPCION DE VARIABLES LOCALES
            //strParam   : Array que va a contener los parámetros de políticas de seguridad
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            string[] strParam = null;

            //Crea el objeto de encriptacion
            TresDES objEncriptarNET = objEncriptarNET = new TresDES();

            objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;
            objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;

            //Recupera los parámetros generales.
            Fachada.FSeguridad facSEG = new Fachada.FSeguridad();
            ManejoSesion.gdtsAuditoria = facSEG.RecuperarDatosParaEntornoCIPOLAdministrador();

            if (ManejoSesion.gdtsAuditoria == null)
            {
                MensajeError = "No se han podido recuperar las políticas generales de seguridad";
                return(false);
            }

            //Parámetros Vacíos??
            if (ManejoSesion.gdtsAuditoria == null || ManejoSesion.gdtsAuditoria.lstParametros.Count().Equals(0))
            {
                MensajeError = "No se han podido recuperar las políticas generales de seguridad";
                return(false);
            }
            //Desencripta Parámetros.
            strParam = Strings.Split(objEncriptarNET.Criptografia(Accion.Desencriptacion, ManejoSesion.gdtsAuditoria.lstParametros[0].COLUMNA4), Constantes.gstrSepParam);

            ManejoSesion.gudParam = new Constantes.gudtParametros();
            ManejoSesion.gudParam.LongitudContraseña                       = short.Parse(strParam[3]);
            ManejoSesion.gudParam.DuracionContraseña                       = Int32.Parse(strParam[4]);
            ManejoSesion.gudParam.CantidadContraseñasAlmacenadas           = Int32.Parse(strParam[7]);
            ManejoSesion.gudParam.TiempoEnDiasNoPermitirCambiarContrasenia = Int32.Parse(strParam[5]);
            ManejoSesion.gudParam.NivelSeguridadContraseña                 = (Constantes.genuNivelSeguridad) short.Parse(objEncriptarNET.Criptografia(Accion.Desencriptacion, ManejoSesion.gdtsAuditoria.lstParametros[0].COLUMNA5));

            //Angel Lubenov -  PARAMETRO 12, éste
            //indica el modo de seguridad aplicado a la hora de
            //asignar nuevos usuaris y/o roles, si está en modo
            //PERMISIVO (0) las tareas a los usuarios que ya
            //posean el rol en cuestion, aparecerán habilitadas,
            //si el modod e seguridad es RESTRICTIVO (1), entonces
            //las tareas apareceran deshabilitadas
            //verificamos si la directiva de seguridad
            //no estaba en el sistema (esto es un control por
            //viejas versiones)
            if (strParam.Length < 13)
            {
                ManejoSesion.gudParam.ModoAsignacionTareasYRoles = 1;
            }
            else
            {
                ManejoSesion.gudParam.ModoAsignacionTareasYRoles = short.Parse(strParam[12]);
            }

            return(true);
        }
        public Retorno NuevaTerminal(Filtro[] filtro)
        {
            Terminal filtro2 = new Terminal();
            TresDES  objEncriptarNET;
            Retorno  objRetorno             = new Retorno();
            dcAdministrarTerminales dcDatos = new dcAdministrarTerminales();

            COA.WebCipol.Entidades.ClasesWs.dcAdministrarTerminales.SE_TERMINALES rowTerm = new COA.WebCipol.Entidades.ClasesWs.dcAdministrarTerminales.SE_TERMINALES();
            int    shtID   = 0;
            string strPath = null;

            string[]          strdom           = null;
            Int32             inti             = default(Int32);
            DirectoryEntry    objIngreso       = default(DirectoryEntry);
            DirectorySearcher objBuscar        = default(DirectorySearcher);
            SearchResult      objResultado     = default(SearchResult);
            FSeguridad        objFacTerminales = new FSeguridad();

            objEncriptarNET     = new TresDES();
            objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;
            objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;


            if (string.IsNullOrEmpty(filtro2.codterminal.Trim()))
            {
                objRetorno.MensajeError       = "El Código de Terminal es un dato obligatorio.";
                objRetorno.ResultadoEjecucion = false;
                return(objRetorno);
            }
            else
            {
                if (VerificarSiExisteCODTERMINAL())
                {
                    objRetorno.MensajeError       = "El Código de Terminal ya existe.";
                    objRetorno.ResultadoEjecucion = false;
                    return(objRetorno);
                }
            }
            //GCP-Cambio ID: 9145
            if (string.IsNullOrEmpty(filtro2.codterminal.Trim()))
            {
                objRetorno.MensajeError       = "El Nombre NETBIOS es un dato obligatorio.";
                objRetorno.ResultadoEjecucion = false;
                return(objRetorno);
            }
            else
            {
                string strErrorNombre = VerifNombreNETBIOS(filtro2.nombrecomputadora.Trim());
                if (string.IsNullOrEmpty(strErrorNombre))
                {
                    if (VerificarSiExisteNombreComputadora())
                    {
                        objRetorno.MensajeError       = "El Nombre NETBIOS es un dato obligatorio.";
                        objRetorno.ResultadoEjecucion = false;
                        return(objRetorno);
                    }
                }
                else
                {
                    objRetorno.MensajeError       = strErrorNombre;
                    objRetorno.ResultadoEjecucion = false;
                    return(objRetorno);
                }
            }

            //[AngelL] 20/02/2005 - Verificacion de la pc contra el dominio
            //si se usa seguridad integrada.
            //Una vez seguros que la información sobre el NombreNetBios fué
            //cargada, ActiveDirectory validará que el nombre exista en su
            //base si la seguridad es integrada.


            //si el dominio no es nulo, o sea, si se esta usando
            //seguridad integrada al dominio, se verifica
            //la pc contra el servicio de directorio usando la sintaxis LDAP
            if (ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Seguridad_SoloDominio)
            {
                try
                {
                    strPath = "LDAP://";
                    strdom  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.NombreDominio.Split('.');
                    for (inti = 0; inti <= strdom.GetUpperBound(0); inti++)
                    {
                        strPath += "DC=";
                        strPath += strdom[inti];
                        strPath += ",";
                    }
                    strPath    = strPath.Substring(0, strPath.Length - 1);
                    objIngreso = new DirectoryEntry(strPath);

                    //construido el path, se agrega el filtro al buscador de
                    //directorio
                    objBuscar        = new DirectorySearcher(objIngreso);
                    objBuscar.Filter = "(&(objectClass=computer)(cn=" + filtro2.nombrecomputadora.Trim() + "))";
                    objResultado     = objBuscar.FindOne();
                }
                catch (Exception ex)
                {
                    objResultado            = null;
                    objRetorno.MensajeError = ex.Message;
                    //lblMSJAltaModif.Text = ex.StackTrace;
                }

                //si no se obtuvieron resultados, se advierte
                if (objResultado == null)
                {
                    objRetorno.MensajeError       = "La terminal indicada no pertenece al Dominio " + ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.NombreDominio + " o en este momento no se puede establecer conexión con el Dominio. Verifique. Terminal no encontrada.";
                    objRetorno.ResultadoEjecucion = false;
                    return(objRetorno);
                }
            }

            //if (this.cboAreas.SelectedIndex == 0)
            if (filtro2.idarea.Equals(0))
            {
                objRetorno.MensajeError       = "La Ubicación Física de la terminal es un datos obligatorio.";
                objRetorno.ResultadoEjecucion = false;
                return(objRetorno);
            }

            //Si es un alta de terminal
            if (filtro2.idterminal == 1)
            {
                rowTerm            = new COA.WebCipol.Entidades.ClasesWs.dcAdministrarTerminales.SE_TERMINALES();
                rowTerm.IDTERMINAL = -1;
            }
            else
            {
                rowTerm.IDTERMINAL = Convert.ToInt32(filtro2.idterminal);
            }
            rowTerm.CODTERMINAL       = filtro2.codterminal;                    //this.txtCodTerminal.Text.Trim();
            rowTerm.NOMBRECOMPUTADORA = filtro2.nombrecomputadora;              //this.txtNombreTerminal.Text.Trim();
            rowTerm.NOMBREAREA        = filtro2.nombrearea;                     //this.cboAreas.SelectedItem.ToString().Trim();
            rowTerm.IDAREA            = System.Convert.ToInt16(filtro2.idarea); //this.cboAreas.SelectedValue
            rowTerm.USOHABILITADO     = objEncriptarNET.Criptografia(Accion.Encriptacion, (filtro2.Habilitada ? "1" : "0").ToString());
            rowTerm.MODELOPROCESADOR  = filtro2.modeloprocesador;               //this.txtProcesador.Text;
            rowTerm.CANTMEMORIARAM    = Convert.ToInt16(filtro2.cantmemoriaram);
            rowTerm.TAMANIODISCO      = Convert.ToInt16(filtro2.tamaniodisco);
            rowTerm.MODELOACELVIDEO   = filtro2.modeloacelvideo;
            rowTerm.DESCADICIONAL     = filtro2.descadicional;
            rowTerm.MODELOMONITOR     = filtro2.modelomonitor;
            if (filtro2.origenactualizacion == "R")
            {
                rowTerm.ORIGENACTUALIZACION = "R";
            }
            else
            {
                rowTerm.ORIGENACTUALIZACION = "L";
            }

            dcDatos.lstSE_TERMINALES.Add(rowTerm);
            if (filtro2.idterminal == 0)
            {
                shtID = objFacTerminales.AdministrarTerminales(dcDatos);
                if (shtID == 0)
                {
                    objRetorno.MensajeError       = "No se han podido actualizar los datos de la terminal en el servidor.";
                    objRetorno.ResultadoEjecucion = false;
                }
                else
                {
                    //LimpiarControles();
                    ////lblMSJAltaModif.Text = "Los datos fueron guardados";
                    //ScriptManager.RegisterStartupScript(this, GetType(), "", "alert('Los datos fueron guardados.');", true);
                    objRetorno.MensajeError       = "Los datos fueron guardados.";
                    objRetorno.ResultadoEjecucion = false;
                }
            }
            else
            {
                if (objFacTerminales.AdministrarTerminales(dcDatos) > 0)
                {
                    //MostrarFormAltaModif(false);
                    //LlenarGrilla();
                    objRetorno.MensajeServicio    = "Los datos fueron guardados";
                    objRetorno.ResultadoEjecucion = true;
                }
                else
                {
                    //MostrarFormAltaModif(false);
                    objRetorno.MensajeError       = "No se han podido actualizar los datos de la terminal en el servidor.";
                    objRetorno.ResultadoEjecucion = false;
                }
            }
            //Retorna el resultado
            return(objRetorno);
        }