Bonjour,
Je débute en ASP.Net / C# et j'ai un petit problème...
Je souhaite faire un formulaire d'authentification par l'intermédiaire d'une base de données SQLServer.
J'utilise, le web.config etc. et jusque là, pas de problème !!!
Je me connecte bien à la base avec ma classe SQLConnexion, et --voici mon problème-- lorsque je compare le password entré au password stocké dans ma base, les deux sont à priori identiques, mais en fait, le password que je récupère de la base de données est rempli d'espaces...
J'ai fait des petites vérif, et je me suis rendu compte que la longueur du password de la base est toujours à 100... Et donc la comparaison ne peut pas fonctionner convenablement !!!
J'ai essayé .Equals et == pour la comparaison, mais le problème ne vient pas de là, il doit venir du ToString il me semble... (?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 // Connexion à la base de données SQLConnexion conn; conn = new SQLConnexion(); // Définition de la requête à exécuter SqlCommand oCommand = new SqlCommand("SELECT * FROM Utilisateurs WHERE login='" + strUtilisateur+ "'",conn.MaConnection); try { // Ouverture de la connexion et exécution de la requête conn.OpenConn(); SqlDataReader drUtilisateur = oCommand.ExecuteReader(); // Parcours de la liste des utilisateurs while (drUtilisateur.Read()) { Response.Write("Pwd entré = "+strMotDePasse.Length); Response.Write("Pwd ok = "+drUtilisateur["password"].ToString().Length); if (drUtilisateur["password"].ToString().Equals(strMotDePasse)) { Response.Write("True mon pote"); bOk = true ; break ; } } drUtilisateur.Close(); } catch { bOk = false ; } conn.CloseConn(); return bOk;
Je voulais donc vous demander si vous aviez une astuce pour éviter ce problème...
Merci,
Partager