private void CargarModulos() { try { if (manejadorUsuario == null) { manejadorUsuario = new ManejadorDB(); } //usuario.EliminarCache(); usuario = manejadorUsuario.Cargar <_sis_Usuario>(_sis_Usuario.consultaPorID, new List <Object>() { usuario.Id }); if (usuario.RolSistema != null) { List <_sis_Contenedor> contenedores = null; //usuario.EliminarCache(); usuario.Manejador = manejadorUsuario; try { if (usuario.RolSistema != null) { TimeSpan diferenciaTRol = (DateTime.Now - usuario.RolSistema.DtFechaModificacion); if (menu.NumeroElementos == 0 || (diferenciaTRol.TotalSeconds <= tiempoActualizacionModulos / 1000)) { menu.LimpiarElementos(); contenedores = usuario.RolSistema.Contenedores; if (contenedores != null) { foreach (_sis_Contenedor contenedor in contenedores) { contenedor.EliminarCache(); menu.AgregarElementoMenu(contenedor); } } menu.DibujarElementos(menu.ActualWidth); //--- if (usuario.RolSistema != null) { rolstr = usuario.RolSistema.Nombre; } Title = nombreSistema + " [versión " + versionActual + "] - Usuario: " + usuario.Cuenta + " - Rol: " + rolstr; if (!primeraVez) { HerramientasWindow.MostrarNotificacion("Se cargo su perfil y los accesos al sistema.", "Perfil cargado"); } else { primeraVez = false; } } else { usuario.RestaurarUltimaCache(); } } if (usuario.ContenedorEspecial != null) { TimeSpan diferenciaTContenedorEspecial = (DateTime.Now - usuario.ContenedorEspecial.DtFechaModificacion); if ((diferenciaTContenedorEspecial.TotalSeconds <= tiempoActualizacionModulos / 1000)) { menu.EliminarOpcionesEspeciales(); if (usuario.ContenedorEspecial != null) { if (usuario.ContenedorEspecial.FormulariosPermisos != null && usuario.ContenedorEspecial.FormulariosPermisos.Count > 0) { usuario.ContenedorEspecial.ImagenAsociada = new _sis_ImagenAsociada(); usuario.ContenedorEspecial.ImagenAsociada.Imagen = new Bitmap(@"Imagenes\Iconos\Sistema\carpeta_especial.png"); menu.AgregarElementoMenu(usuario.ContenedorEspecial); } } menu.DibujarElementos(menu.ActualWidth); Title = nombreSistema + " [versión " + versionActual + "] - Usuario: " + usuario.Cuenta + " - Rol: " + rolstr; HerramientasWindow.MostrarNotificacion("Se cargo su perfil y los accesos al sistema.", "Perfil cargado"); } } } catch (Exception ex) { throw new Exception(ex.Message); } } else if (!usuario.EsAdministradorDeSistema) { menu.LimpiarElementos(); HerramientasWindow.MensajeAdvertencia("Actualmente no tiene asignado un Rol. Favor de contactar al administrador del Sistema para la asignación de un Rol.", "Información"); } else { menu.LimpiarElementos(); } if (usuario.SMensajeDeIntentoDeConexionEnOtroEquipo != null && !usuario.SMensajeDeIntentoDeConexionEnOtroEquipo.Equals("")) { if (usuario.EsAdministradorDeSistema || (usuario.RolSistema != null && usuario.RolSistema.EsAdministradorDeSistema)) { //Dispatcher.Invoke(new Action(() => //{ // HerramientasWindow.MensajeInformacion(usuario.SMensajeDeIntentoDeConexionEnOtroEquipo, "Atención!"); //})); if (!detectoEntradaOtroLado) { detectoEntradaOtroLado = true; DelegadoCerradoOtroLogueo delegadoParaCerrar = CerrarSistemaPorOtroLogueo; HerramientasWindow.MostrarNotificacion(usuario.SMensajeDeIntentoDeConexionEnOtroEquipo, "Atención!", new Bitmap(@"Imagenes\Iconos\Sistema\Dialogos\advertencia3.png"), delegadoParaCerrar, 5); } } else { HerramientasWindow.MostrarNotificacion(usuario.SMensajeDeIntentoDeConexionEnOtroEquipo, "Detección de intento de acceso", new Bitmap(@"Imagenes\Iconos\Sistema\Dialogos\advertencia3.png"), 0); usuario.SMensajeDeIntentoDeConexionEnOtroEquipo = ""; usuario.EsModificado = true; manejador.GuardarAsincrono("", usuario); } } } catch (Exception ex) { Dispatcher.Invoke(new Action(() => { HerramientasWindow.MensajeError(ex, ex.Message, "Error al cargar modulos de usuario."); })); } }
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é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ó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"); } }