Difficulté en code d'authentification

Messages postés
9
Date d'inscription
vendredi 4 février 2011
Statut
Membre
Dernière intervention
17 mai 2012
- - Dernière réponse : cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
- 22 avril 2013 à 20:13
Salut tous le monde je suis entrain de chercher un code d'authentification en asp.net et j'ai trouvé sa mais j'ai pas compris cette partie
{{ Dim sqlPwd As String
sqlPwd = "select pwd from auth where pwd=txtMdp.txt"

Dim CurrentName As String
CurrentName = CStr(com.ExecuteScalar)

If CurrentName <> "" Then
Session("UserAuthentication") = username

Response.Redirect("equipements.aspx")
Else
Session("UserAuthentication") = ""
End If }}
Afficher la suite 

15 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Salut,

je commente ton code trouvé, ça t'aidera peut-être à le comprendre :
' je définis la requête en BDD qui va regarder si le password saisi existe
Dim sqlPwd As String 
sqlPwd = "select pwd from auth where pwd=" & txtMdp.txt
' j'exécute la requête en "scalar" pour ne récupérer que la 1ère colonne de la 1ère ligne
Dim CurrentName As String 
CurrentName = CStr(com.ExecuteScalar) 
' si j'ai trouvé quelque chose c'est que le password saisi existe en base
If CurrentName <> "" Then 
' j'enregistre donc le nom de l'utilisateur
Session("UserAuthentication") = username 
' je le redirige vers la page à laquelle il a maintenant droit
Response.Redirect("equipements.aspx") 
' si je n'ai rien trouvé c'est que le password n'est pas référencé
Else 
' j'enregistre le fait que je n'ai pas d'utilisateur authentifié
Session("UserAuthentication") = "" 
End If


Attention, il y'a beaucoup de soucis de sécurité dans ce code, mais maintenant tu sais ce qu'il fait ;)

Bon dev
Commenter la réponse de cs_jopop
0
Merci
Bonjour, Je suis en train de faire un logiciel d'authentification. j'ai créer un base de donnée et j'ai mis le code pour la connecté mais je n'arrive pas à lire les données sql pour que quand je tape le login et mot de passe ça fonctionne. Je vous met mon code :
rivate Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click 'connexion a la base de donnée
If TextBox1.Text "" And TextBox2.Text "" Then
MsgBox("connexion impossible !")
Else
Try

Dim connectionString As String = "Data Source=MICKO-PC\SQLEXPRESS;Initial Catalog=LogicielCGS;Integrated Security=True;"
Dim connection As SqlConnection = New SqlConnection(connectionString)

connection.Open()
Dim command As SqlCommand = New SqlCommand("SELECT login,mdp FROM utlisateurs WHERE login=" & TextBox1.Text & " and mdp=" & TextBox2.Text & ",connection")
command.Connection = connection
Dim reader As SqlDataReader = command.ExecuteReader
If reader.HasRows() Then
Me.Close()
Form2.Show()
Else
MsgBox("Identifiants incorrects!")
TextBox1.Text = ""
TextBox2.Text = ""
End If
reader.Close()
connection.Close()
Catch ex As Exception
MsgBox(ex.Message())
End Try
End If

End Sub

Pourriez vous m'aider ? Merci.
Commenter la réponse de Micko97
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Salut,

quelle est l'erreur exacte obtenue ?
Commenter la réponse de cs_jopop
0
Merci
une erreur de syntaxe
Commenter la réponse de Micko97
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
J'aurais préféré le code erreur ainsi que le message exact.
Là je peux juste dire que l'erreur vient de ta requête, sans savoir si :
- ça vient d'un nom de champ ou de table incorrect (ex. utlisateurs),
- d'un paramètre erroné ou tendancieux (es. valeur de TextBox1.Text contenant des caractères spéciaux),
- ou simplement de quelques guillemets manquantes (tu n'en mets aucune dans ta requête alors que je suppose que tes deux champs sont des VARCHAR).
Commenter la réponse de cs_jopop
0
Merci
Voila l'erreur exacte : Syntaxe incorrecte vers ','
Commenter la réponse de Micko97
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
T'as un problème de quote dans le constructeur de SqlCommand.
Les caractères en rouge sont de trop :
Dim command As SqlCommand = New SqlCommand("SELECT login,mdp FROM utlisateurs WHERE login=" & TextBox1.Text & " and mdp=" & TextBox2.Text & ",connection")
Commenter la réponse de cs_jopop
0
Merci
Cela me met un autre erreur : Nom de colonne non valide :'Rémy'
Nom de colonne non valide :'financierecgs'

c mon login et mot de passe
Commenter la réponse de Micko97
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
yep, regarde mon message plus haut :

- ou simplement de quelques guillemets manquantes (tu n'en mets aucune dans ta requête alors que je suppose que tes deux champs sont des VARCHAR).


Il te manque les caractères en rouge :
Dim command As SqlCommand = New SqlCommand("SELECT login,mdp FROM utlisateurs WHERE login='" & TextBox1.Text & "' and mdp='" & TextBox2.Text & "'",connection)


Enfin, le plus propre serait quand même d'utiliser des SqlParameter.
Commenter la réponse de cs_jopop
0
Merci
Tout fonctionne correctement ! Je te remercie pour ton aide comme je débute avec le vb je ne connais pas tout. Merci encore
Commenter la réponse de Micko97
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
De rien, on est là pour aider ;)
Par contre pense à noter une "réponse acceptée".
Commenter la réponse de cs_jopop
0
Merci
comment fait t'on cela ? c'est quelque chose a noté, a ajouter ?
Commenter la réponse de Micko97
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Sous les messages tu dois avoir un bouton "accepter la réponse", ou un truc du genre.
Commenter la réponse de cs_jopop
0
Merci
salm je un probleme dans sa code
comment quand on fait la conexion (login et password) nous le ramène à une autre page mais il ne faut pas retourner à l'ancienne page par flèche de retour en haut? comment faire ça avec asp.net(vb) dans mon code du session de sécurisation
Partial Class Administrateur
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Conn As OleDbConnection
Conn = New OleDbConnection

Conn.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\toshiba\Documents\Visual Studio 2010\WebSites\projet\App_Data\dakynus.accdb")


Conn.Open()
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim requete, table, Login As String
Login = TextBox3.Text
requete = "SELECT inscription.Password FROM inscription WHERE (((inscription.Login)='" & Login & "'))"
table = "inscription"
se_connecter(requete, table)
End Sub

Dim ValisePassword As Boolean = False

Private Sub se_connecter(ByVal requete As String, ByVal table As String)
Dim base, passwordBD As String
'Chemin d'accès à la b.d. située dans le dossier bin

base = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\toshiba\Documents\Visual Studio 2010\WebSites\projet\App_Data\dakynus.accdb")



Dim conn As OleDbConnection = New OleDbConnection(base)
'ouverture de la base de donnée
conn.Open()
'Lien entre la base et la requête
Dim Liaison As New OleDbDataAdapter(requete, base)
Dim Memoire As New DataSet

'Charge la table en mémoire
Liaison.Fill(Memoire, table)

'Vérifie si la base de donnée contient juste le mot de passe et qu'elle ne soit pas vide
If ((Memoire.Tables(table).Select.Length) = 1) Then
'retourne le password de la table mise en mémoire
passwordBD = CType(Memoire.Tables(table).Rows(0).Item("Password"), String)
'Vérification du mot de passe
If passwordBD = TextBox1.Text Then
FormsAuthentication.SignOut()

Response.Redirect("reservation.aspx")
ValisePassword = True
ElseIf passwordBD <> TextBox1.Text Then
Label1.Text = ("Nom d'utlilisateur et Mot de passe incorrects,Veuillez réessayer")
ValisePassword = False



End If

End If
conn.Close()
End Sub


End Class
Commenter la réponse de arig1
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Salut,

utilise les balises [ code][ /code], là c'est illisible (déjà que le VB c'est lourdingue ...)
Commenter la réponse de cs_jopop