private void ActualizarRegistro() { string contrasenaEncriptada = " "; idUsuario = Txt_idUsuario.Text; nickUsuario = Txt_nombre.Text; contrasenaUsuario = Txt_contrasena.Text; idPerfil = Txt_idPerfil.Text; contrasenaEncriptada = Seguridad_Login.Encriptar(Txt_contrasena.Text); try { string actualizarRegistro = "UPDATE `tbl_usuario` SET `Pk_idUsuario` = '" + idUsuario + "' ," + "`nombreUsuario` = '" + nickUsuario + "', `contrasenaUsuario` = '" + contrasenaEncriptada + "', " + "`Fk_idPerfil` = '" + idPerfil + "', `estado` = '1' WHERE Pk_idUsuario = " + idUsuario; OdbcCommand comm = new OdbcCommand(actualizarRegistro, Conexion.nuevaConexion()); comm.ExecuteNonQuery(); MessageBox.Show("Registro actualizado correctamente"); comm.Connection.Close(); OdbcCommand comm1 = new OdbcCommand("{call SP_InsertarBitacora(?,?,?,?,?)}", Conexion.nuevaConexion()); comm1.CommandType = CommandType.StoredProcedure; comm1.Parameters.Add("ope", OdbcType.Text).Value = "ACTUALIZACIÓN DE REGISTRO"; comm1.Parameters.Add("usr", OdbcType.Text).Value = nombreUsuario; comm1.Parameters.Add("fecha", OdbcType.Text).Value = fecha.ToString("yyyy/MM/dd HH:mm:ss"); comm1.Parameters.Add("proc", OdbcType.Text).Value = "MANTENIMIENTO USUARIO"; comm1.Parameters.Add("dirIp", OdbcType.Text).Value = localIP; comm1.ExecuteNonQuery(); comm1.Connection.Close(); } catch (Exception err) { Console.WriteLine(err.Message); MessageBox.Show("No se han llenado todos los campos para actualizar el registro..."); } }
private void IniciarSesion() { contrasenaDesencriptada = " "; idUsuario = 0; nombreUsuario = " "; tipoPerfil = 0; estadoLogeado = 0; actualizarCampo = " "; DateTime fecha_ingreso = DateTime.Now; //algoritmo para obtener la dirección IP de la máquina IPHostEntry host; string localIP = "?"; host = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ip in host.AddressList) { if (ip.AddressFamily.ToString() == "InterNetwork") { localIP = ip.ToString(); } } //fin de algoritmo try { //Ejecución de consulta para buscar el usuario string consultaUsuario = string.Format("SELECT * FROM tbl_usuario WHERE estado = 1;"); OdbcCommand comm = new OdbcCommand(consultaUsuario, Conexion.nuevaConexion()); OdbcDataReader mostrarUsuarios = comm.ExecuteReader(); while (mostrarUsuarios.Read()) { contrasenaDesencriptada = Seguridad_Login.DesEncriptar(mostrarUsuarios.GetString(2)); //guarda la contraseña del usuario desencriptada nombreUsuario = mostrarUsuarios.GetString(1); estadoLogeado = mostrarUsuarios.GetInt32(5); //si los campos escritos en el Formulario son iguales a los del registro de la BD se permite el logeo if (Txt_usuario.Text != mostrarUsuarios.GetString(1) || Txt_contrasena.Text != contrasenaDesencriptada) { Txt_usuario.Focus(); datosIncorrectos = true; } else { if (estadoLogeado == 1) //El usuario ya ha sido logeado { MessageBox.Show("ESTE USUARIO ESTA LOGEADO ACTUALMENTE"); datosIncorrectos = false; } else { Console.WriteLine("WORKS"); //Pruebas de depuración idUsuario = mostrarUsuarios.GetInt32(0); nombreUsuario = mostrarUsuarios.GetString(1); Console.WriteLine("WORKS2"); tipoPerfil = mostrarUsuarios.GetInt32(3); Console.WriteLine("WORKS3"); MessageBox.Show("INICIANDO SESIÓN"); Frm_mdi mdiMenu = new Frm_mdi(idUsuario, nombreUsuario, tipoPerfil); this.Hide(); mdiMenu.Show(); Console.WriteLine("Inicio de sesión"); //Consulta para verificar que el usuario solo pueda logearse al sistema 1 vez actualizarCampo = "UPDATE tbl_usuario SET logeado = '1' WHERE Pk_idUsuario= " + idUsuario + " AND Fk_idPerfil= '" + tipoPerfil + "'"; OdbcCommand commAct = new OdbcCommand(actualizarCampo, Conexion.nuevaConexion()); commAct.ExecuteNonQuery(); datosIncorrectos = false; Console.WriteLine("WORKS3"); //El login del usuario se registra en la bitácora OdbcCommand commBitacora = new OdbcCommand("{call SP_InsertarBitacora(?,?,?,?,?)}", Conexion.nuevaConexion()); commBitacora.CommandType = CommandType.StoredProcedure; commBitacora.Parameters.Add("ope", OdbcType.Text).Value = "INICION DE SESIÓN"; commBitacora.Parameters.Add("usr", OdbcType.Text).Value = nombreUsuario; commBitacora.Parameters.Add("fecha", OdbcType.Text).Value = fecha_ingreso.ToString("yyyy/MM/dd HH:mm:ss"); commBitacora.Parameters.Add("proc", OdbcType.Text).Value = "-------------"; commBitacora.Parameters.Add("dirIp", OdbcType.Text).Value = localIP; commBitacora.ExecuteNonQuery(); commBitacora.Connection.Close(); break; } } } comm.Connection.Close(); mostrarUsuarios.Close(); if (datosIncorrectos == true) { MessageBox.Show("DATOS INCORRECTOS"); } } catch (Exception err) { Console.Write("Error: " + err.Message); Console.Write("DATOS INCORRECTOS"); } }