public Resultado IniciarSesion(BE.Usuario usuario, EstadoBaseDeDatos estadoBaseDeDatos) { BLL.Bitacora bllBitacora = new BLL.Bitacora(); if (String.IsNullOrEmpty(usuario.NombreUsuario) || String.IsNullOrEmpty(usuario.Password)) return new Resultado(true, "Debe ingresar el usuario y la contraseña", TipoMensaje.NORMAL, "Campos vacios"); if (estadoBaseDeDatos.EsValida) { BE.Usuario usuarioBase = ObtenerUsuarioPorNombreDeUsuario(usuario.NombreUsuario); if (usuarioBase != null) { if (Encriptador.ValidarCadena(usuario.Password, usuarioBase.Password)) { ManejadorSesion manejadorSesion = ManejadorSesion.Instancia; bllBitacora.GrabarBitacora(usuarioBase, "Inicio de sesión", new BE.TipoEvento() {Id = 2, Descripcion = "Mensaje"}); manejadorSesion.EstablecerSesion(usuarioBase, estadoBaseDeDatos); return new Resultado(false, "Ok"); } return new Resultado(true, "Usuario o contraseña incorrectos", TipoMensaje.ERROR, "Error"); } return new Resultado(true, "Usuario o contraseña incorrectos", TipoMensaje.ERROR, "Error"); } else { if (usuario.NombreUsuario.Equals(USUARIO_SERVICIO) && usuario.Password.Equals(PASS_USUARIO_SERVICIO)) { BE.Usuario beUsuario = new BE.Usuario(); beUsuario.NombreUsuario = USUARIO_SERVICIO; beUsuario.Password = PASS_USUARIO_SERVICIO; ManejadorSesion.Instancia.EstablecerSesion(beUsuario, estadoBaseDeDatos); return new Resultado(false, "Ok"); } else { return new Resultado(true, "Usuario o contraseña incorrectos", TipoMensaje.ERROR, "Error"); } } }
private async Task ValidarBaseDeDatos() { BLL.DVV bllDvv = new BLL.DVV(); _estadoBd = bllDvv.ValidarBasedeDatos(); if (!_estadoBd.EsValida) { string mensaje = String.Empty; foreach (string registro in _estadoBd.RegistrosCorruptos) { mensaje += registro + Environment.NewLine; } //ManejadorSesion.Instancia.ObtenerSesion().BaseValida = false; Mensaje vieMensaje = new Mensaje(TipoMensaje.ERROR, "Base de datos corrupta", mensaje + @"Se habilitará solo la opción de restore al iniciar sesión con el usuario de servicio"); var resultadoMensaje = await DialogHost.Show(vieMensaje, "dhMensajes"); } }
public EstadoBaseDeDatos ValidarBasedeDatos() { BLL.Sistema bllSistema = new BLL.Sistema(); EstadoBaseDeDatos resultado = new EstadoBaseDeDatos(); try { string todosLosDvh = null; resultado.EsValida = true; //CALCULO DE TODOS LOS DVH //Obtengo todos los nombres de las tablas de la base de datos List <string> nombresDeTablas = ObtenerNombresDeTablas(); foreach (string nombreTabla in nombresDeTablas) { //Obtengo el contenido de la tabla actual DataTable tabla = bllSistema.LeerTablaPorNombre(nombreTabla); string dvvCalculado = ""; bool tablaValida = true; for (int row = 0; row <= tabla.Rows.Count - 1; row++) { //Calculo el DVH string dvhCalculado = DigitoVerificador.CalcularDvhDeFila(tabla, row); todosLosDvh = todosLosDvh + dvhCalculado; if (!tabla.Rows[row]["DVH"].ToString().Equals(dvhCalculado)) { //Si el DVH guardado en la base es distinto al DVH recien calculado //indica que hubo una modificacion del registro, sin actualizar el DVH resultado.RegistrosCorruptos.Add("Error de integridad en la tabla -" + nombreTabla + "- en el registro " + tabla.Rows[row][0].ToString()); resultado.EsValida = false; tablaValida = false; } dvvCalculado += tabla.Rows[row]["DVH"].ToString(); } if (tablaValida) { BE.DVV aDvv = _dalManagerDvv.ObtenerDVVPorNombreDeTabla(nombreTabla); dvvCalculado = DigitoVerificador.CrearHash(dvvCalculado); resultado.EsValida = dvvCalculado.Equals(aDvv.Valor); if (!resultado.EsValida) { resultado.RegistrosCorruptos.Add( "Error de integridad en la tabla -" + nombreTabla + "-. DVV vertical corrupto"); } } } } catch (Exception ex) { Logger.Log.Error("Error al validar la integridad de la base.", ex); resultado.RegistrosCorruptos.Add("No se pudo validar la integridad de la base."); resultado.EsValida = false; return(resultado); } return(resultado); }