Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Aiuto Username e Password
lunedì 03 settembre 2007 - 21.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
z.cristiano
Profilo
| Newbie
24
messaggi | Data Invio:
lun 3 set 2007 - 21:09
Salve a tutti!
Ho una difficoltà poco pesante!
Io ho fatto una mascherza d'accesso con due campi txtUsername e txtPassword..
Nel database ho messo due dati (username = 12, password = 12 e username = 44, password = 44)
Dopo aver fatto il codice, durante il debug, funziona e accede solo digitando 12 e 12, mentre l'altro non funziona, perchè? Cosa e dove ho sbagliato?
Ti lascio il codice e magari mi potrete dare un'occhiata?
Grazie
C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Progetto
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnEntra_Click(object sender, EventArgs e)
{
//SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=cristiano;Integrated Security=True");
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Zuddas Design\Documenti\Visual Studio 2005\Projects\Progetto\Progetto\database.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmq = new SqlCommand(@"SELECT * FROM accesso", conn);
conn.Open();
SqlDataReader leggi = cmq.ExecuteReader();
leggi.Read();
DialogResult Conferma1;
if((txtUsername.Text == "") && (txtPassword.Text == ""))
{
Conferma1 = MessageBox.Show("Inserisci la tua user e la password",
"Attenzione!",
MessageBoxButtons.OK,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2);
}
else
{
string username = leggi.GetString(leggi.GetOrdinal("username"));
string password = leggi.GetString(leggi.GetOrdinal("password"));
if((txtUsername.Text == username) && (txtPassword.Text == password))
{
MessageBox.Show("Welcome! You are now logged in " + username + " e " + password + "");
}
else
{
MessageBox.Show("Sorry, you didn't manage to log in.");
}
}
leggi.Close();
conn.Close();
}
}
}
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
lun 3 set 2007 - 21:50
>Salve a tutti!
Ciao!
>Ho una difficoltà poco pesante!
>Io ho fatto una mascherza d'accesso con due campi txtUsername
>e txtPassword..
>Nel database ho messo due dati (username = 12, password = 12
>e username = 44, password = 44)
>Dopo aver fatto il codice, durante il debug, funziona e accede
>solo digitando 12 e 12, mentre l'altro non funziona, perchè?
>Cosa e dove ho sbagliato?
Attenzione, quello che hai scritto non ti dà alcuna garanzia di funzionamento nemmeno nel caso in cui (qualche volta) funziona già. Perchè dico qualche volta? Prova ad inserire il record con 05 - 05 e vedrai che nemmeno il 12 effettuerà il login. Questo perchè tu leggi l'intera tabella e controlli solo la prima riga del resultset (il metodo Read, infatti, ti sposta in prima posizione del tuo cursore connesso).
Quindi qualunque sia l'informazione che ti viene passata la riferisci sempre e comunque alla prima riga.
Un metodo più sicuro è scrivere una query che vada a ricercare sul database per username e password (utilizzando il comando parametrizzato o, se puoi, le stored procedure). In questo modo, se ottieni una riga con quei parametri di ricerca (la where, per intenderci) allora la login è valida, viceversa, se il resultset è vuoto, allora l'utente non dispone delle informazioni necessarie per accedere alla tua applicazione.
Dovresi fare una cosa del genere:
- leggo i dati dai txt.
- seleziono le righe sul database dove l'utente e la password sono quelle passate
- se ho una riga, ok, il login è corretto
- se non ho righe il login non è valido
A te l'implementazione
Ciao!
Alx81 =)
http://blogs.dotnethell.it/suxstellino
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !