Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [ASP.NET] controllo login comparare nome utente e password

    sto scrivendo un controllo login in ASP.NET in C# con dietro un database (.mdb di Access) di utenti. ora mi trovo davanti a questo problema. come posso confrontare i dati immessi nei textbox (nome utente e password) con i campi nome utente e password nel database di Access?
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  2. #2
    devi filtrare i dati.
    tipo where nome utente = txtNome.text( occhio alle sql injections) e lo controlli con un datareader

  3. #3
    Giusto per le sqlinjection, io userei una count e non un datareader se ti serve solo sapere se l'utente esiste:

    dopo aver effettuato la connessione al db, partendo dall'assunto che hai importato:
    System.Data.OleDbClient

    Sub btnLogin_OnClick(Src As Object, E As EventArgs)
    Dim myConnection As OleDbConnection
    Dim myCommand As OleDbCommand
    Dim intUserCount As Integer
    Dim strSQL As String

    strSQL = "SELECT COUNT(*) FROM tabella WHERE username='" & Replace("UserName", "'", "''") & "' AND password='" & Replace("Password", "'", "''") & "';"


    myConnection = New OleDbConnection(.....i dati della tua connessione.....)


    myCommand = New OleDbCommand(strSQL, myConnection)

    myConnection.Open()
    intUserCount = CType(myCommand.ExecuteScalar(), Integer)

    ....oppure.....

    intUserCount = (int) myCommand.ExecuteScalar()

    .....non mi ricordo il casti di un oggetto in vb.net .......

    myConnection.Close()

    .....QUI ti controlli se intUserCount è 1 o 0 con una if....


    End sub


    ciao
    Scuba
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  4. #4
    Per ovviare al problema dell'injection potresti anche usare questa forma che ho utilizzato
    nel mio codice per costruire le query

    Codice PHP:

    SqlCommand _sql 
    = new SqlCommand();
    _sql.CommandText "Select * from nometabella where id = @id_utente";
    _sql.Connection _dbconn;
    _sql.Parameters.AddWithValue("@id_utente"TextBox.text); 

  5. #5
    grazie ora quel problema l'ho risolto. Purtroppo ora ne ho un'altro. ho scritto anche il codice per un form di registrazione al sito e ho usato una query SQL INSERT INTO. Quando faccio il debug sul mio PC usando il Server di sviluppo ASP .NET di Microsoft tutto funziona alla perfezione ma quando vado a caricare i file sul mio server web e eseguo l'applicazione il server mi restituisce questo errore: "Operation must use an updateable query." Che significa??

    Ti posto la parte del codice che scatena l'errore:

    codice:
     public int VerificaRegistrazione(string User, string Password1, string Password2, string ServerPath)
    {
    string Conn = "Provider=Microsoft.Jet.OleDb.4.0; " +
    "Data source=" + ServerPath;
    string SQL = "INSERT INTO Utenti VALUES ('" + User + "', '" + Password1 + "');";
    int Y;
    OleDbConnection Connessione = new OleDbConnection(Conn);
    OleDbCommand Cmd = new OleDbCommand();
    
    if (Password1 == Password2)
    {
    Connessione.Open();
    Cmd.Connection = Connessione;
    Cmd.CommandText = SQL;
    Cmd.CommandType = CommandType.Text;
    Y = (int)Cmd.ExecuteNonQuery();
    return Y;
    }
    else
    {
    return Y = -1;
    }
    }
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  6. #6
    non vedo la connessione chiusa innanzitutto

  7. #7
    Probabilmente l'mdb si trova in una cartella del Web Server senza i diritti di scrittura e modifica.
    ciao
    Scuba
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  8. #8
    grazie ho risolto. Mi è bastato spostare il database nella cartella predefinita del dominio mdb-database che è apposta per la scrittura dei database.
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  9. #9
    Stefano De Simone
    http://www.blackice.it Raccolta Script,C#,php,Ajax

  10. #10
    Utente di HTML.it L'avatar di october
    Registrato dal
    Feb 2001
    residenza
    Torino
    Messaggi
    318
    Originariamente inviato da scubadive
    Probabilmente l'mdb si trova in una cartella del Web Server senza i diritti di scrittura e modifica.
    ciao
    Scuba
    Grazie, il mio problema era proprio qui.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.