private void enviarCorreo()
        {
            List <_sis_Usuario> usuariosSoporte = manejador.CargarLista <_sis_Usuario>(_sis_Usuario.consultaPorUsuariosSoporte);

            manejador.CerrarConexion();
            String emails = "";

            if (usuariosSoporte == null)
            {
                return;
            }
            foreach (_sis_Usuario usuario in usuariosSoporte)
            {
                emails += usuario.SEmail + "; ";
            }
            emails = emails.Substring(0, emails.Length - 2);

            String correo           = "";
            String detallesTecnicos = "";

            Dispatcher.Invoke(new Action(() =>
            {
                correo           = txt_comentarios.Text.Trim();
                detallesTecnicos = @"<ul>
	            <li>IP(LAN|WAN): "     + IPLAN + "|" + IPInternet + @"</li>
	            <li>Usuario: "     + UsuarioLogueadoCuenta + @"</li>
	            <li>Hora del evento: "     + horaEvento.ToString("yyyy-MM-dd HH:mm:ss") + @"</li>
                <li>Correo del usuario: " + UsuarioLogueadoEmail + @"</li>
            </ul>";
            }));


            try
            {
                CorreoEnviado = false;
                EmailFormatos.EnviarMailError(correo, "Error en el sistema", detallesTecnicos, Excepcion, emails, new List <Adjunto>()
                {
                    new Adjunto()
                    {
                        NombreArchivo = "foto.jpg", Stream = Herramientas.WPF.Utilidades.BitmapToStream(fotoPantalla)
                    }
                });

                Dispatcher.Invoke(new Action(() =>
                {
                    HerramientasWindow.MostrarNotificacion("Enviando correo...", "Enviando");
                }));
            }
            catch (Exception ex)
            {
                Dispatcher.Invoke(new Action(() =>
                {
                    HerramientasWindow.MostrarNotificacion("Error: " + ex.Message, "Error al enviar el correo");
                }));
            }
        }
 void EmailFormatos_correoEnviado()
 {
     Dispatcher.Invoke(new Action(() =>
     {
         if (!CorreoEnviado)
         {
             HerramientasWindow.MostrarNotificacion("El correo fue enviado exitosamente.", "Correo enviado");
             if (Principal.usuario.SEmail != null && !Principal.usuario.SEmail.Trim().Equals(""))
             {
                 EmailFormatos.EnviarMailInformacion("El equipo de soporte ha recibido tu error. Pronto se comunicarán contigo para conocer mayores detalles.", "Error notificado con exito", Principal.usuario.SEmail, new List <Adjunto>()
                 {
                     new Adjunto()
                     {
                         NombreArchivo = "foto.jpg", Stream = Herramientas.WPF.Utilidades.BitmapToStream(fotoPantalla)
                     }
                 });
             }
             CorreoEnviado = true;
         }
     }));
 }
Exemple #3
0
        private void AgregarLoginFallido()
        {
            try
            {
                _sis_AccesoFallido acceso = manejador.CrearObjeto <_sis_AccesoFallido>();
                acceso.SIPEquipo             = ipLocal;
                acceso.SIpInternet           = ipInternet;
                acceso.SNombreEquipo         = Environment.MachineName;
                acceso.SUsuarioWindows       = Environment.UserName;
                acceso.SUsuarioRegistrado    = txt_usuario.Text;
                acceso.SContrasenaRegistrada = txt_contraseña.Text;
                acceso.EsModificado          = true;
                manejador.Guardar(acceso);

                accesosFallidos.Add(acceso);

                if (accesosFallidos.Count > 2)
                {
                    Bitmap fotoUsuario = HerramientasWindow.ObtenerFotoDeWebCam();
                    _sis_LimiteAccesosFallidosAlcanzado limite = manejador.CrearObjeto <_sis_LimiteAccesosFallidosAlcanzado>();

                    limite.AccesosFallidos           = accesosFallidos;
                    limite.FotoPantalla              = manejador.CrearObjeto <_sis_ImagenAsociada>();
                    limite.FotoPantalla.EsModificado = true;
                    limite.FotoPantalla.Imagen       = HerramientasWindow.ComprimirImagen(HerramientasWindow.ObtenerFotoPantalla(this), 1000, 600, System.Drawing.Imaging.ImageFormat.Jpeg);
                    limite.FotoWebCam = manejador.CrearObjeto <_sis_ImagenAsociada>();
                    limite.FotoWebCam.EsModificado = true;
                    limite.FotoWebCam.Imagen       = HerramientasWindow.ComprimirImagen(fotoUsuario, 600, 400, System.Drawing.Imaging.ImageFormat.Jpeg);
                    limite.EsModificado            = true;
                    Bitmap emailFotoPantalla = limite.FotoPantalla.Imagen;
                    Bitmap emailFotoWebcam   = limite.FotoWebCam.Imagen;
                    manejador.Guardar(limite);
                    accesosFallidos.Clear();

                    List <_sis_Usuario> usuariosAdmins = manejador.CargarLista <_sis_Usuario>(_sis_Usuario.consultaPorUsuariosAdministradores);
                    String emails = "";
                    foreach (_sis_Usuario us in usuariosAdmins)
                    {
                        if (!us.SEmail.Trim().Equals(""))
                        {
                            emails += us.SEmail + "; ";
                        }
                    }
                    if (!emails.Trim().Equals(""))
                    {
                        emails = emails.Substring(0, emails.Length - 2);
                    }
                    if (!emails.Trim().Equals(""))
                    {
                        String detallesTecnicos = @"<p><strong>Detalles t&eacute;cnicos:</strong></p>

                    <ul>
	                    <li>IP(LAN|WAN): "     + ipLocal + "|" + ipInternet + @"</li>
	                    <li>Nombre equipo: "     + acceso.SNombreEquipo + @"</li>
	                    <li>Hora del evento: "     + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + @"</li>
	                    <li>Sesión Windows: "     + acceso.SUsuarioWindows + @"</li>
                        <li>Usuario registrado: " + acceso.SUsuarioRegistrado + @"</li>
                    </ul>";

                        String  mensaje = @"
                    <h2><strong>Detecci&oacute;n de intruso en el sistema.</strong></h2>

                    <blockquote>
                    <p><em>Verificar archivos adjuntos.</em></p>
                    </blockquote>
                    ";
                        Adjunto adj1    = null;
                        Adjunto adj2    = null;
                        if (emailFotoPantalla != null)
                        {
                            adj1 = new Adjunto();
                            adj1.NombreArchivo = "fotoPantalla.jpg";
                            adj1.Stream        = Herramientas.WPF.Utilidades.BitmapToStream(emailFotoPantalla);
                        }
                        if (emailFotoWebcam != null)
                        {
                            adj2 = new Adjunto();
                            adj2.NombreArchivo = "fotoWebcam.jpg";
                            adj2.Stream        = Herramientas.WPF.Utilidades.BitmapToStream(emailFotoWebcam);
                        }
                        List <Adjunto> adjuntos = new List <Adjunto>();
                        adjuntos.Add(adj1);
                        adjuntos.Add(adj2);
                        try
                        {
                            EmailFormatos.EnviarMailAtencion(mensaje, "Intento de acceso no permitido detectado", detallesTecnicos, null, emails, adjuntos);
                        }
                        catch { }
                    }
                    fotoUsuario = null;
                    conteoRegistrosLimite++;

                    if (conteoRegistrosLimite == 2)
                    {
                        _sis_EquiposRegistrados equipoRegistrado = manejador.Cargar <_sis_EquiposRegistrados>(_sis_EquiposRegistrados.ConsultaPorNombreEquipo, new List <object>()
                        {
                            Environment.MachineName
                        });
                        if (equipoRegistrado == null)
                        {
                            equipoRegistrado = manejador.CrearObjeto <_sis_EquiposRegistrados>();
                        }

                        equipoRegistrado.SNombreEquipo         = Environment.MachineName;
                        equipoRegistrado.SUltimaIPConexion     = ipLocal;
                        equipoRegistrado.UltimoUsuarioConexion = usuario;
                        equipoRegistrado.BEstaBloqueado        = true;
                        equipoRegistrado.BEstaConectado        = false;
                        equipoRegistrado.EsModificado          = true;
                        manejador.Guardar(equipoRegistrado);
                        HerramientasWindow.MensajeAdvertencia("Por seguridad se ha bloqueado el equipo. Favor de contactar al administrador del Sistema.", "Bloqueo de seguridad");
                    }
                }
            }
            catch (Exception ex)
            {
                HerramientasWindow.MensajeError(ex, "Error: " + ex.Message, "Error");
            }
        }