예제 #1
0
        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...");
            }
        }
예제 #2
0
        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");
            }
        }