Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026

    Controllare tutti i records per fare il login C#

    Salve.
    Sto provando a fare un login tramite il database SQL-Server.
    Devo leggere tutti i records con i campi di user, password e tipo di abilitazione.
    Quindi se ho un abilitazione adi tipo "a" aprirà un form altrimenti se di tipo "b"un'altro.
    Qua sotto ho creato un metodo però non funziona bene.
    Se qualcuno volesse dare un'occhiata oppure se c'è qualcosa in internet per dare uno spunto.
    Grazie.
    codice:
            public void AccediDB()
            {
                string username;
                string password;
                string abilitazione;
                SqlCommand cmd = new SqlCommand("Select * From Tbl_Userid", Connetti.Conn);
                try
                {
                    // La connessione era solo impostata, ora la si apre
                    // Connect.conn.Open();
                    // Si utilizza il DataReader per leggera la tabella un record per volta
                    SqlDataReader myReader = cmd.ExecuteReader();
    
                    //verifico l'esistenza di almeno un record nella tabella
                    if (myReader.HasRows)
                    {
                        int n = 1;
                        int a = 1;
                        while (n < 2)
                        {
                            // leggo il contenuto dell'intero record in modo orrizzontale
                            myReader.Read();
                            username = myReader.GetString(0).ToString();
                            password = myReader.GetString(2).ToString();
                            abilitazione = myReader.GetString(3).ToString();
    
                            // confronto che i dati del programma sono congrui a quelli
                            // presente nel database
    
                            if ((username == txtUsername.Text) && (password == txtPassword.Text))
                            {
                                while (a < 2)
                                {
                                    if (abilitazione == "a")
                                    {
                                        frmBiblioteca myNewForm1 = new frmBiblioteca();
                                        myNewForm1.Show();
                                        break;
                                    }
                                    if (abilitazione == "b")
                                    {
                                        frmLibri myNewForm = new frmLibri();
                                        myNewForm.Show();
                                        break;
                                    }
                                    a++;
                                }
                            }
                            else
                            {
                                MessageBox.Show("Username o Password non validi.", "Errore di Login",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
    
                        }
                        n++;
                    }
                    // Chiude il DataReader
                    myReader.Close();
                }
                catch
                {
                    //gestione dell'errore
                }
            }

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A parte il fatto che dire non funziona bene non vale una cippa...

    Che senso ha leggere TUTTA la tabella?

    Al Login l'utente deve inserire Username e Password, e tu eseguirai una query verificando solo questi valori usando tassativamente un SqlCommand, per non mettere a rischio l'applicazione da utenti smanettoni/malintenzionati.

  3. #3
    Utente di HTML.it L'avatar di Ironmax
    Registrato dal
    Dec 2008
    Messaggi
    1,026
    Scusa gibra hai del codice di esempio oppure puoi rimandarmi ad un link dove spiega questa tecnica che hai detto?
    Grazie.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Basta che scarichi il mio esempio su ADO.NET che vedi in firma.

    Comunque non è una tecnica, è solo questione di usare un po' di logica.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.