User et mot de passe dans une db en .net

penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006 - 31 janv. 2005 à 14:44
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006 - 2 févr. 2005 à 17:12
bonjour,

je suis en train de créer un écran de login pour un de mes prog.

j'ai créé une db avec une seule table dans laquelle on retrouve les noms et mot de passe des utilisateurs.

dans ma page de login, j'ai mis une combo que je rempli avec un datareader et qui va contenir les noms des utilisateurs.

en dessous de la combo, j'ai une textbox qui va permettre l'utilisateur d'entrer son mot de passe

mais je ne sais vraiment pas comment m'y prendre pour que lorsqu'un
utilisateur choisit son nom dans la combo, le test vérifie dans la db
si c'est bien son mot de passe.



je sais c'est pas très clair, mais je crois que vous me comprenez, (du moins j'espère)

qqn a une idée?

34 réponses

cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 15:11
lu
tu ve pouvoir récuperer la valeur de ta combo?

Fabrice
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 15:16
imagine, dans la combo il ya user1
user2
user3
user1 a comme mot depasse : 123456
user2 a comme mot depasse : 111111
user3 a comme mot depasse : 172589

et je voudrais que lorsque user2 choisit son nom dans la combo, on teste si son mot de passe est bien celui qui lui est attribué dans la db (donc ici, 111111).
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 15:21
oui, mais VB est un langage evenementiel.
dc la vérification,tu ve kel se fasse kan,parce qu'avec ce que je lis,
j'ai l impression que tu ve kil saisisse le MDP et ke kan il clic sur la combo,on test voir si c bon.
tu ve mettre un bouton non??
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 15:23
oui je met un bouton

l'utilisateur choisit son nom dans la combo
a partir de ce moment, il entre son mot de passe (qui est dans la db)
puis il clique sur un bouton valider.
si le mot de passe qu'il a entré est bien celui qui lui correspond dans la db, l'application s'ouvre, sinon on redemande le bon mot de passe.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 15:31
d accord.perso,je fai un select * from user where mdp .. and login ...
et si il retourne une ligne c OK sinon PAS OK
je suis assez kler?
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 15:37
ah oui très clair.
mais ya un truc que je ne comprend pas, c'est le fait qu'il me retourne une ligne. que veux-tu qu'il me renvoie?

donc en fait, je dois faire :
dim requete as string = "select * from utilisateurs where login="+'"combobox1.text"'+"and password="+'"textbox1.text"' ";

mais quand je fais ca, je fais quoi avec???
désolé de faire mon embétant comme ca mais je débute en vb.net
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 15:41
dim requete as string = "select * from utilisateurs where login="+'"combobox1.text"'+"and password="+'"textbox1.text"' ";

t sur que c 'est des + ?? c pa des & ??

ca a part.
tu execute cette requete et tu fai un recordcount par exemple.
si ton recordcount = 1 alors tu pe le laisser entrer :-)
sinon non..

tu voulai la syntaxe pr executer une requete?
tu es deja connecté?
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 15:52
je suis déjà connecté.
sorry pour les plus, c'est "l'habitude" du c#....
pour remplir ma combo par exemple, je fais ca :

OleDbConnection1.Open()



Dim dr
As OleDbDataReader = OleDbCommand1.ExecuteReader()



Do
While dr.Read()


ComboBox1.Items.Add(dr.GetString(0))



Loop

et le commandtext de ma command est : select login from utilisateurs;

ton recordcount, il ne fait que compter les enregistrements dans la table. je ne vois pas comment l'utiliser dans mon prog
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 15:58
oki.
bon,
ex : user = fab pass=pass dans le BDD
ds ton form user=fab pass=pass

dim requete as string = "select * from utilisateurs where login="+'"combobox1.text"'+"and password="+'"textbox1.text"' ";

le recordcount va te renvoyer-> 1

si ds ta form user = fab2 pass=pass
ton recordcount va te renvoyer 0

capich?
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 16:05
jusque la ça va.
juste une chose, le recordcount, je dois le déclarer ou pas? parce que je n'ai jamais utilisé ce brol
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 16:14
par exemple
normalement c'est
NbeRetourné=RECORSET.recordcount
msgbox NbeRetourné
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 16:17
quand je met ca, je n'ai meme pas la possibilité de mettre un recordcount.
je travaille avec une oledb, pas une ado
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 16:24
désolé j'utilise pa de oledb..
sinon tu fai req=count(*) from ....
et tu récupere la valeur de retour.
tu sé récupéré le résultat d'une req ou pas du tout??
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 16:27
ben heuuuuuuuuuu

non
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 16:34
ben je dirai

Dim oConnection As New SqlConnection(strConnexion)
Dim oledbCommand1 As New SqlCommand(strRequete, oConnection)


Dim dr
As OleDbDataReader = OleDbCommand1.ExecuteReader()



TON RESULTAT =dr.Read()
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
31 janv. 2005 à 16:48
je vais essayer ca mais ce soir. j'ai autre souci majeur juste à l'instant,
on en reparle demain?
merci bcp de ta patience et de ton aide
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
31 janv. 2005 à 16:49
pas de probleme.
a dem1 alors :-)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
31 janv. 2005 à 23:50
Je vais vous paraitre pénible, mais au diable où est la sécurité ?



si tu utilises ca comme requete SQL : dim requete as string = "select * from utilisateurs where login="+'"combobox1.text"'+"and password="+'"textbox1.text"' ";
j'espere que ce n'est pas une application critique ...



parce que si un petit malin veut se connecter il n'a qu'a mettre dans le password : ' or 1=1 --



ta chaine SQL sera donc :



select * from
utilisateurs where login='Cyri'l and password='' or 1=1 -- ' et la il
va te retourner au moins une ligne, l'utilisateur aura accés à ton
application.



La sécurité de nos jours c'est primordial




<hr>

Cyril - http://Hoshimi.CodeS-SourceS.fr
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
1 févr. 2005 à 08:14
non il faut pas sécuriser à ce point, mais c'est bien d'avoir fait la remarque...
merci
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
1 févr. 2005 à 09:47
bonjour a tous.
merci pour ta remarque constructive,en effet j'avais vu ce point en cours mais j'aurai bien aimé avoir ta solution :-)

select * from utilisateurs where login='Cyri'l and password='' or 1=1 -- ' et la il va te retourner au moins une ligne, l'utilisateur aura accés à ton application.

tu dis au moins une ligne ou 1 ligne.
car mon test c'était = 1 et pas >=1
ca peut passer ?

Fabrice
0