Esempio n. 1
0
        /// <summary>
        /// Realiza el cambio de clave de un usuario del sistema de una empresarias .
        /// </summary>
        /// <param name="item"></param>
        public bool UpdatePasswordEmpresaria(UsuariosInfo m, string oldPassword)
        {
            bool oktransact = false;

            string clearText = oldPassword.Trim();
            //string cipherText = Application.Enterprise.CommonObjects.Tools.EncryptCYPHER(clearText);
            string cipherText = Application.Enterprise.CommonObjects.Tools.Encrypt(clearText, true);

            string clearTextNueva = m.ClaveNueva.Trim();
            //*string cipherTextNueva = Application.Enterprise.CommonObjects.Tools.EncryptCYPHER(clearTextNueva);
            string cipherTextNueva = Application.Enterprise.CommonObjects.Tools.Encrypt(clearTextNueva, true);

            bool okPassword = this.ValidatePassword(oldPassword);

            if (okPassword)
            {
                bool okPasswordNuevo = this.ValidatePassword(clearTextNueva);

                if (!okPasswordNuevo)
                {
                    m.Clave      = cipherText;
                    m.ClaveNueva = cipherTextNueva;

                    //m.Clave = cipherText;
                    oktransact = module.UpdatePasswordEmpresaria(m);
                }
            }

            return(oktransact);
        }
Esempio n. 2
0
        /// <summary>
        /// Valida la existencia y acceso al sistema de un usuario.
        /// </summary>
        /// <param name="Usuario">Usuario</param>
        /// <param name="Clave">Clave</param>
        /// <returns></returns>
        public bool ValidateUserSVDN(string Usuario, string Clave)
        {
            bool validate = false;

            UsuariosInfo ObjUsuario = new UsuariosInfo();

            if (Usuario != "" && Usuario != null && Clave != "" && Clave != null)
            {
                string clearText = Clave.Trim();
                //*Habilitar para Cypher string cipherText = Application.Enterprise.CommonObjects.Tools.EncryptCYPHER(clearText);
                string cipherText = Application.Enterprise.CommonObjects.Tools.Encrypt(clearText, true);

                //*ObjUsuario = this.ListxUsuarioSVDN(Clave);
                //ObjUsuario = this.ListxUsuarioSVDN(Clave);

                //ObjUsuario = this.ListxUsuarioSVDNJUTAUSUYPASS(Clave, Usuario);//COLOMBIA
                ObjUsuario = this.ListxUsuarioSVDN(Clave);//PERU Y ECUADOR

                if (ObjUsuario != null)
                {
                    if (cipherText == ObjUsuario.Clave.Trim())
                    {
                        validate = true;
                    }
                }
            }
            return(validate);
        }
Esempio n. 3
0
        /// <summary>
        /// Realiza el reinicio de clave de un usuario en el sistema.
        /// </summary>
        /// <param name="item"></param>
        public bool UpdatePasswordReiniciar(UsuariosInfo item)
        {
            bool transOk = false;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandUsuarios, "i_operation", 'U');
                db.SetParameterValue(commandUsuarios, "i_option", 'E');
                db.SetParameterValue(commandUsuarios, "i_clave_acce", item.Clave);
                db.SetParameterValue(commandUsuarios, "i_clave_acce_nueva", item.ClaveNueva);
                db.SetParameterValue(commandUsuarios, "i_vendedor", item.IdVendedor);

                dr = db.ExecuteReader(commandUsuarios);

                transOk = true;

                //-----------------------------------------------------------------------------------------------------------------------------
                //Guardar auditoria
                try
                {
                    Auditoria     objAuditoria     = new Auditoria("conexion");
                    AuditoriaInfo objAuditoriaInfo = new AuditoriaInfo();

                    objAuditoriaInfo.FechaSistema = DateTime.Now;
                    objAuditoriaInfo.Usuario      = item.NombreUsuario;
                    objAuditoriaInfo.Proceso      = "Se realizó Actualización de Clave de Usuario: Clave Anterior: " + item.Clave + " , Nueva Clave:" + item.ClaveNueva + " , IdVendedor:" + item.IdVendedor + ". Acción Realizada por el Usuario: " + item.NombreUsuario;

                    objAuditoria.Insert(objAuditoriaInfo);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error Auditoria: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));
                }
                //-----------------------------------------------------------------------------------------------------------------------------
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(transOk);
        }
Esempio n. 4
0
    public static long InsertUsuario(UsuariosInfo info)
    {
        Usuarios Publicacion = new Usuarios();

        Usuario.Nombre             = Usuario.Nombre;
        Usuario.Apellido_Paterno   = Usuario.Apellido_Paterno;
        Usuario.Apellido_Materno   = Usuario.Apellido_Materno;
        Usuario.Contraseña         = Usuario.Contraseña;
        Usuario.Correo_electronico = Usuario.Correo_electronico;
    }
Esempio n. 5
0
        /// <summary>
        /// Realiza el cambio de clave de un usuario del sistema en G&G y SVDN en el sistema.
        /// </summary>
        /// <param name="item"></param>
        public bool UpdatePasswordGYG(UsuariosInfo item)
        {
            try
            {
                return(module.UpdatePasswordGYG(item));
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                return(false);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// GAVL INGRESO DE USUSARIOS ASISTENTES Y NO PUEDEN REINICIAR CLAVE QUEDARA CON EL NUMERO DE CEDULA
        /// </summary>
        /// <param name="item"></param>
        /// <param name="Usuario"></param>
        /// <returns></returns>
        public bool InsertSinReinciar(UsuariosInfo item, string Usuario)
        {
            try
            {
                return(module.InsertSinReinciar(item, Usuario));
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                return(false);
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Crea un usuario para una gerente zonal.
        /// </summary>
        /// <param name="item">objeto usuario info.</param>
        /// <returns>ok transaccion</returns>
        public bool InsertUsuarioGerenteZonal(UsuariosInfo item)
        {
            bool transOk = false;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandUsuarios, "i_operation", 'I');
                db.SetParameterValue(commandUsuarios, "i_option", 'B');
                db.SetParameterValue(commandUsuarios, "i_usuario", item.Usuario);
                db.SetParameterValue(commandUsuarios, "i_clave_acce", item.Clave);
                db.SetParameterValue(commandUsuarios, "i_descripcion", item.Descripcion);
                db.SetParameterValue(commandUsuarios, "i_grupo", item.IdGrupo);
                db.SetParameterValue(commandUsuarios, "i_vencimiento", item.Vencimiento);
                db.SetParameterValue(commandUsuarios, "i_activo", item.Activo);
                db.SetParameterValue(commandUsuarios, "i_codigo", item.Codigo);
                db.SetParameterValue(commandUsuarios, "i_accesoweb", item.AccesoWeb);
                db.SetParameterValue(commandUsuarios, "i_email", item.Email);
                db.SetParameterValue(commandUsuarios, "i_vendedor", item.IdVendedor);

                dr = db.ExecuteReader(commandUsuarios);

                transOk = true;
            }
            catch (Exception ex)
            {
                transOk = false;

                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(transOk);
        }
Esempio n. 8
0
        /// <summary>
        /// Valida la existencia y acceso al sistema de un usuario.
        /// </summary>
        /// <param name="Usuario">Usuario</param>
        /// <param name="Clave">Clave</param>
        /// <returns></returns>
        public bool ValidatePassword(string Clave)
        {
            bool validate = false;


            string clearText = Clave.Trim();
            //string cipherText = Application.Enterprise.CommonObjects.Tools.EncryptCYPHER(clearText);
            string cipherText = Application.Enterprise.CommonObjects.Tools.Encrypt(clearText, true);

            UsuariosInfo ObjUsuario = this.ListxUsuarioGYG(cipherText);

            if (ObjUsuario != null)
            {
                validate = true;
            }

            return(validate);
        }
        public ClienteInfo CrearUsuarioyClave(ClienteInfo ObjClienteInfo)
        {
            Usuarios     objUsuarios     = new Usuarios("conexion");
            UsuariosInfo objUsuariosInfo = new UsuariosInfo();

            objUsuariosInfo.Usuario     = ObjClienteInfo.Nit;
            objUsuariosInfo.Clave       = objUsuarios.EncriptarCadena(ObjClienteInfo.Nit);
            objUsuariosInfo.Descripcion = objUsuarios.EncriptarCadena(ObjClienteInfo.Nombre1 + " " + ObjClienteInfo.Nombre2 + " " + ObjClienteInfo.Apellido1 + " " + ObjClienteInfo.Apellido2);
            objUsuariosInfo.IdGrupo     = Convert.ToString((int)GruposUsuariosEnum.EmpresariasWeb);
            objUsuariosInfo.Vencimiento = DateTime.Now.AddYears(50);
            objUsuariosInfo.Activo      = 1;
            objUsuariosInfo.Codigo      = "EMP";
            objUsuariosInfo.AccesoWeb   = true;
            objUsuariosInfo.IdVendedor  = ObjClienteInfo.Vendedor;

            if (ObjClienteInfo.Email != "")
            {
                objUsuariosInfo.Email = ObjClienteInfo.Email;
            }
            else
            {
                objUsuariosInfo.Email = ObjClienteInfo.Nombre1 + ObjClienteInfo.Nombre2 + ObjClienteInfo.Apellido1 + ObjClienteInfo.Apellido2 + "@SVDN";
            }

            try
            {
                if (!objUsuarios.Insert(objUsuariosInfo))
                {
                    ObjClienteInfo.Error             = new Error();
                    ObjClienteInfo.Error.Id          = -1;
                    ObjClienteInfo.Error.Descripcion = "Error: No se pudo crear usuario y  clave. Nit:" + ObjClienteInfo.Nit + ", Fallo SQL SERVER.";
                    ObjClienteInfo.Nit = ObjClienteInfo.Nit;
                }
            }
            catch (Exception)
            {
                ObjClienteInfo.Error             = new Error();
                ObjClienteInfo.Error.Id          = -1;
                ObjClienteInfo.Error.Descripcion = "Error: No se pudo crear usuario y  clave. Nit:" + ObjClienteInfo.Nit + ", Fallo SQL SERVER.";
                ObjClienteInfo.Nit = ObjClienteInfo.Nit;
            }

            return(ObjClienteInfo);
        }
Esempio n. 10
0
        /// <summary>
        /// lista todos los Usuarios existentes.
        /// </summary>
        /// <returns></returns>
        public List <UsuariosInfo> List()
        {
            db.SetParameterValue(commandUsuarios, "i_operation", 'S');
            db.SetParameterValue(commandUsuarios, "i_option", 'A');

            List <UsuariosInfo> col = new List <UsuariosInfo>();

            IDataReader dr = null;

            UsuariosInfo m = null;

            try
            {
                dr = db.ExecuteReader(commandUsuarios);

                while (dr.Read())
                {
                    m = Factory.GetUsuarios(dr);

                    col.Add(m);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(col);
        }
Esempio n. 11
0
        /// <summary>
        /// -Realiza la inactivacion de clave de un usuario del sistema en G&G y SVDN
        /// </summary>
        /// <param name="item"></param>
        public bool UpdateInactivarUsuario(UsuariosInfo m, string oldPassword)
        {
            bool oktransact = false;

            string clearText = oldPassword.Trim();
            //string cipherText = Application.Enterprise.CommonObjects.Tools.EncryptCYPHER(clearText);
            string cipherText = Application.Enterprise.CommonObjects.Tools.Encrypt(clearText, true);

            string clearTextNueva = m.ClaveNueva.Trim();
            //*string cipherTextNueva = Application.Enterprise.CommonObjects.Tools.EncryptCYPHER(clearTextNueva);
            string cipherTextNueva = Application.Enterprise.CommonObjects.Tools.Encrypt(clearTextNueva, true);

            //bool okPassword = this.ValidatePassword(oldPassword);

            //if (okPassword)
            //{

            //    bool okPasswordNuevo = this.ValidatePassword(clearTextNueva);

            //    if (!okPasswordNuevo)
            //    {
            //        m.Clave = cipherText;
            //        m.ClaveNueva = cipherTextNueva;

            //        //m.Clave = cipherText;
            //        oktransact = module.UpdateInactivarUsuario(m);
            //    }
            //}

            try
            {
                m.Clave      = cipherText;
                m.ClaveNueva = cipherTextNueva;
                oktransact   = module.UpdateInactivarUsuario(m);
            }
            catch (Exception)
            {
                throw;
            }

            return(oktransact);
        }
Esempio n. 12
0
        /// <summary>
        /// Lista un usuario especifico del sistema de administracion. JUTA USU Y PASS
        /// </summary>
        /// <param name="Clave">Clave</param>
        /// <returns></returns>
        public UsuariosInfo ListxUsuarioSVDNJUTAUSUYPASS(string Clave, string usu)
        {
            db.SetParameterValue(commandUsuarios, "i_operation", 'S');
            db.SetParameterValue(commandUsuarios, "i_option", 'K');
            db.SetParameterValue(commandUsuarios, "i_clave_acce", Clave);
            db.SetParameterValue(commandUsuarios, "i_usuario", usu);

            IDataReader dr = null;

            UsuariosInfo m = null;

            try
            {
                dr = db.ExecuteReader(commandUsuarios);

                if (dr.Read())
                {
                    m = Factory.GetUsuarios(dr);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(m);
        }
Esempio n. 13
0
        /// <summary>
        /// Realiza el cambio de clave de una empresaria en el sistema.
        /// </summary>
        /// <param name="item"></param>
        public bool UpdatePassword(UsuariosInfo item)
        {
            bool transOk = false;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandUsuarios, "i_operation", 'U');
                db.SetParameterValue(commandUsuarios, "i_option", 'A');
                db.SetParameterValue(commandUsuarios, "i_usuario", item.Usuario);
                db.SetParameterValue(commandUsuarios, "i_clave_acce", item.Clave);

                dr = db.ExecuteReader(commandUsuarios);

                transOk = true;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }

            return(transOk);
        }
Esempio n. 14
0
        /// <summary>
        /// Valida la existencia y acceso al sistema de un usuario.
        /// </summary>
        /// <param name="Usuario">Usuario</param>
        /// <param name="Clave">Clave</param>
        /// <returns></returns>
        public bool ValidateUser(string Usuario, string Clave)
        {
            bool validate = false;

            UsuariosInfo ObjUsuario = new UsuariosInfo();

            if (Usuario != "" && Usuario != null && Clave != "" && Clave != null)
            {
                string clearText  = Clave.Trim();
                string cipherText = Application.Enterprise.CommonObjects.Tools.Encrypt(clearText, true);

                ObjUsuario = this.ListxUsuario(Usuario);

                if (ObjUsuario != null)
                {
                    if (cipherText == ObjUsuario.Clave)
                    {
                        validate = true;
                    }
                }
            }
            return(validate);
        }
Esempio n. 15
0
        /// <summary>
        /// GAVL INGRESO DE USUSARIOS ASISTENTES Y NO PUEDEN REINICIAR CLAVE QUEDARA CON EL NUMERO DE CEDULA
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public bool InsertSinReinciar(UsuariosInfo item, string Usuario)
        {
            bool transOk = false;

            IDataReader dr = null;

            try
            {
                db.SetParameterValue(commandUsuarios, "i_operation", 'I');
                db.SetParameterValue(commandUsuarios, "i_option", 'C');
                db.SetParameterValue(commandUsuarios, "i_usuario", item.Usuario);
                db.SetParameterValue(commandUsuarios, "i_clave_acce", item.Clave);
                db.SetParameterValue(commandUsuarios, "i_descripcion", item.Descripcion);
                db.SetParameterValue(commandUsuarios, "i_grupo", item.IdGrupo);
                db.SetParameterValue(commandUsuarios, "i_vencimiento", item.Vencimiento);
                db.SetParameterValue(commandUsuarios, "i_activo", item.Activo);
                db.SetParameterValue(commandUsuarios, "i_codigo", item.Codigo);
                db.SetParameterValue(commandUsuarios, "i_accesoweb", item.AccesoWeb);
                db.SetParameterValue(commandUsuarios, "i_email", item.Email);
                db.SetParameterValue(commandUsuarios, "i_vendedor", item.IdVendedor);

                dr = db.ExecuteReader(commandUsuarios);

                transOk = true;

                //-----------------------------------------------------------------------------------------------------------------------------
                //Guardar auditoria
                try
                {
                    Auditoria     objAuditoria     = new Auditoria("conexion");
                    AuditoriaInfo objAuditoriaInfo = new AuditoriaInfo();

                    objAuditoriaInfo.FechaSistema = DateTime.Now;
                    objAuditoriaInfo.Usuario      = Usuario;
                    objAuditoriaInfo.Proceso      = "Se realizó la creación de usuario Asistente:Ususario: " + item.Usuario + " nombre : " + item.Descripcion + ". Acción Realizada por el Usuario: " + Usuario;

                    objAuditoria.Insert(objAuditoriaInfo);
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error Auditoria: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));
                }
                //-----------------------------------------------------------------------------------------------------------------------------
            }
            catch (Exception ex)
            {
                transOk = false;

                System.Diagnostics.Trace.WriteLine(string.Format("NIVI Error: {0} , NameSpace: {1}, Clase: {2}, Metodo: {3} ", ex.Message, MethodBase.GetCurrentMethod().DeclaringType.Namespace, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name));

                bool rethrow = ExceptionPolicy.HandleException(ex, "DataAccess Policy");

                if (rethrow)
                {
                    throw;
                }
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(transOk);
        }
Esempio n. 16
0
        /// <summary>
        /// llamado cuando se recibe un paquete udp
        /// </summary>
        /// <param name="ar"> Direccion y puero de donde se recibio el paquete
        /// </param>
        void OnReceive(IAsyncResult ar)
        {
            UdpClient  cliente    = (UdpClient)ar.AsyncState;                     // se recibio un paquete
            IPEndPoint ipeEnviado = new IPEndPoint(IPAddress.Any, 0);             // direccion y puerto de donde se recibio el pauete

            byte[]  mensaje = cliente.EndReceive(ar, ref ipeEnviado);             // datos recibidos
            Mensaje msg     = new Mensaje(mensaje);                               // convierte el paquete de datos

            switch (msg.comando)
            {
            case Comando.login:                                                         // registra un usuario nuevo
                if (UsuariosList.Count == 0)
                {
                    if (msg.origen != usuario)
                    {
                        UsuariosInfo _usuario = new UsuariosInfo();
                        _usuario.ipendpoint = ipeEnviado;
                        _usuario.Nombre     = msg.origen;
                        UsuariosList.Add(_usuario);
                        lstUsuarios.Items.Add(_usuario.Nombre);
                        txtChat.Text += msg.origen + " Se a unido al chat" + Environment.NewLine;
                    }
                }
                else
                {
                    bool Si_esta = false;
                    foreach (UsuariosInfo Usuarios in UsuariosList)
                    {
                        if (Usuarios.Nombre == msg.origen || usuario == msg.origen)
                        {
                            Si_esta = true;
                        }
                    }
                    if (!Si_esta)
                    {
                        UsuariosInfo _usuario = new UsuariosInfo();
                        _usuario.ipendpoint = ipeEnviado;
                        _usuario.Nombre     = msg.origen;
                        UsuariosList.Add(_usuario);
                        lstUsuarios.Items.Add(_usuario.Nombre);
                        txtChat.Text += msg.origen + " Se a unido al chat" + Environment.NewLine;
                    }
                }
                break;

            case Comando.logout:                                                                // quita un usuario que dejo el chat
                int indice = 0;
                foreach (UsuariosInfo usuarios in UsuariosList)
                {
                    if (usuarios.Nombre == msg.origen)
                    {
                        UsuariosList.RemoveAt(indice);
                        lstUsuarios.Items.Remove(usuarios.Nombre);
                        lstUsuarios.Refresh();
                        break;
                    }
                    ++indice;
                }

                txtChat.Text += msg.origen + " Se a desconectado del chat" + Environment.NewLine;
                break;

            case Comando.mensaje:                                       //entrega el mensaje al usuario
                txtChat.Text += msg.origen + " Dice: " + Environment.NewLine;
                txtChat.Text += "\t" + msg.mensaje + Environment.NewLine;

                txtChat.SelectionStart = txtChat.Text.Length;
                txtChat.ScrollToCaret();
                txtChat.Refresh();
                break;
            }

            receptor.BeginReceive(OnReceive, ar.AsyncState);              //empieza a escuchar mensajes otra vez
        }