Пример #1
0
        public void ActualizarUsuarioyPassword(int idUsuario, String nombre, String password)
        {
            String contrasenia = AlgoritmoSha256.getHash(password);

            query = "PUSH_IT_TO_THE_LIMIT.pr_usuario_nombre_password";
            parametros.Clear();
            parametros.Add(new SqlParameter("@idUsuario", idUsuario));
            parametros.Add(new SqlParameter("@nombreUsuario", nombre));
            parametros.Add(new SqlParameter("@passwordUsuario", contrasenia));
            command             = ConstructorQuery.Instance.build(query, parametros);
            command.CommandType = CommandType.StoredProcedure;
            command.ExecuteNonQuery();
        }
Пример #2
0
 public int CrearUsuarioConValores(String username, String password)
 {
     query = "PUSH_IT_TO_THE_LIMIT.pr_crear_usuario_con_valores";
     parametros.Clear();
     parametroOutput           = new SqlParameter("@usuario_id", SqlDbType.Int);
     parametroOutput.Direction = ParameterDirection.Output;
     parametros.Add(new SqlParameter("@username", username));
     parametros.Add(new SqlParameter("@password", AlgoritmoSha256.getHash(password)));
     parametros.Add(parametroOutput);
     command             = ConstructorQuery.Instance.build(query, parametros);
     command.CommandType = CommandType.StoredProcedure;
     command.ExecuteNonQuery();
     return((int)parametroOutput.Value);
 }
Пример #3
0
        private void botonIngresar_Click(object sender, EventArgs e)
        {
            //Validamos que ingrese usuario y contraseña
            if (this.textBoxUsuario.Text == "")
            {
                MessageBox.Show("Debe ingresar un usuario", "Error en el login", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (this.textBoxContaseña.Text == "")
            {
                MessageBox.Show("Debe ingresar una contraseña", "Error en el login", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            // Nos fijamos si el usuario y contraseña existen y esta habilitado
            String query = "SELECT * FROM PUSH_IT_TO_THE_LIMIT.Usuario WHERE usuario_name = @username AND usuario_password = @password AND usuario_habilitado = 1";

            String usuario = this.textBoxUsuario.Text;
            // valida contraseña encriptada
            String contraseña = AlgoritmoSha256.getHash(this.textBoxContaseña.Text);
            IList <SqlParameter> parametros = new List <SqlParameter>();

            parametros.Add(new SqlParameter("@username", usuario));
            parametros.Add(new SqlParameter("@password", contraseña));

            SqlDataReader reader = QueryHelper.Instance.exec(query, parametros);

            //Chequea el ingreso
            if (QueryHelper.Instance.readFrom(reader))
            {
                MessageBox.Show("Bienvenido " + reader["usuario_name"] + "!", "Bienvenido", MessageBoxButtons.OK, MessageBoxIcon.Information);

                UsuarioSesion.Usuario.nombre = (String)reader["usuario_name"];
                UsuarioSesion.Usuario.id     = (Int32)reader["usuario_id"];

                // Usuario logueado correctamente (intentos fallidos = 0)
                parametros.Clear();
                parametros.Add(new SqlParameter("@username", usuario));
                String clearIntentosFallidos = "UPDATE PUSH_IT_TO_THE_LIMIT.Usuario SET usuario_intentos = 0 WHERE usuario_name = @username";
                ConstructorQuery.Instance.build(clearIntentosFallidos, parametros).ExecuteNonQuery();

                parametros.Clear();
                parametros.Add(new SqlParameter("@username", usuario));

                String consultaRoles   = "SELECT COUNT(rol_id) FROM PUSH_IT_TO_THE_LIMIT.RolporUsuario WHERE (SELECT usuario_id FROM PUSH_IT_TO_THE_LIMIT.Usuario WHERE usuario_name =@username) = usuario_id";
                int    cantidadDeRoles = (int)ConstructorQuery.Instance.build(consultaRoles, parametros).ExecuteScalar();

                int idUsuario = Convert.ToInt32(mapper.SelectFromWhere("usuario_id", "Usuario", "usuario_name", textBoxUsuario.Text));

                if (cantidadDeRoles > 1)
                {
                    this.Hide();
                    new ElegirRol(idUsuario).ShowDialog();
                    this.Close();
                }
                else
                {
                    parametros.Clear();
                    parametros.Add(new SqlParameter("@username", usuario));
                    String rolDeUsuario = "SELECT r.rol_nombre FROM PUSH_IT_TO_THE_LIMIT.Rol r, PUSH_IT_TO_THE_LIMIT.RolporUsuario ru, PUSH_IT_TO_THE_LIMIT.Usuario u WHERE r.rol_id = ru.rol_id AND ru.usuario_id = u.usuario_id AND u.usuario_name = @username";
                    String rolUser      = (String)ConstructorQuery.Instance.build(rolDeUsuario, parametros).ExecuteScalar();

                    UsuarioSesion.Usuario.rol = rolUser;
                    if (UsuarioSesion.Usuario.rol == null)
                    {
                        MessageBox.Show("No existen roles para iniciar sesion");
                        return;
                    }


                    this.Hide();
                    new MenuPrincipal().ShowDialog();
                    this.Close();
                }
            }
            else
            {
                // Se fija si el usuario era correcto
                parametros.Clear();
                parametros.Add(new SqlParameter("@username", usuario));
                String        buscaUsuario = "SELECT * FROM PUSH_IT_TO_THE_LIMIT.Usuario WHERE usuario_name = @username";
                SqlDataReader lector       = ConstructorQuery.Instance.build(buscaUsuario, parametros).ExecuteReader();

                if (lector.Read())
                {
                    // Se fija si el usuario esta inhabilitado
                    parametros.Clear();
                    parametros.Add(new SqlParameter("@username", usuario));
                    parametros.Add(new SqlParameter("@password", contraseña));
                    String estaDeshabilitado = "SELECT * FROM PUSH_IT_TO_THE_LIMIT.Usuario WHERE usuario_name = @username AND usuario_habilitado = 0";

                    SqlDataReader userDeshabilitado = ConstructorQuery.Instance.build(estaDeshabilitado, parametros).ExecuteReader();

                    if (userDeshabilitado.Read())
                    {
                        MessageBox.Show("El usuario no esta habilitado");
                        return;
                    }

                    // Suma un fallido
                    parametros.Clear();
                    parametros.Add(new SqlParameter("@username", usuario));
                    String sumaFallido = "UPDATE PUSH_IT_TO_THE_LIMIT.Usuario SET usuario_intentos = usuario_intentos + 1 WHERE usuario_name = @username";
                    ConstructorQuery.Instance.build(sumaFallido, parametros).ExecuteNonQuery();


                    // Si es el tercer fallido se deshabilita al usuario
                    parametros.Clear();
                    parametros.Add(new SqlParameter("@username", usuario));
                    String cantidadFallidos = "SELECT usuario_intentos FROM PUSH_IT_TO_THE_LIMIT.Usuario WHERE usuario_name = @username";
                    int    intentosFallidos = Convert.ToInt32(ConstructorQuery.Instance.build(cantidadFallidos, parametros).ExecuteScalar());

                    if (intentosFallidos == 3)
                    {
                        parametros.Clear();
                        parametros.Add(new SqlParameter("@username", usuario));
                        String deshabilitar = "UPDATE PUSH_IT_TO_THE_LIMIT.Usuario SET usuario_habilitado = 0 WHERE usuario_name = @username";
                        ConstructorQuery.Instance.build(deshabilitar, parametros).ExecuteNonQuery();
                    }
                    MessageBox.Show("Contraseña incorrecta , Fallidos del usuario: " + intentosFallidos + "  (Al tercer intento sera bloqueado)");
                }
                else
                {
                    MessageBox.Show("El usuario no existe", "Error en el login", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }