Login

saritanet Messages postés 32 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 septembre 2008 - 24 août 2008 à 13:46
saritanet Messages postés 32 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 septembre 2008 - 29 août 2008 à 12:38
Bonjour,
j suis débutant dans la programmation de vb.net et  j crée un siteweb dynamique dont un espace est reservé aux administrateurs, pour cela j'ai ajouté login de la partie connexion, et j'ai fait:

Private
Function LogIn(
ByVal UserName
As
String,
ByVal Pass
As
String)
As
Boolean
Dim Access1
As
Boolean =
False
Dim Access2
As
Boolean =
False
maRequete1 =
" select log_in from password"
myCommand1 =
New SqlCommand(maRequete1, maConnexionSQLsrv)
myCommand1.Connection.Open()
oReader1 = myCommand1.ExecuteReader()
myCommand1.Connection.Close()

maRequete2 =
" select password from password where log_in= UserName"
myCommand2 =
New SqlCommand(maRequete1, maConnexionSQLsrv)
myCommand2.Connection.Open()
oReader2 = myCommand2.ExecuteReader()
myCommand2.Connection.Close()

If (UserName
In
Me
.oreader1 )
Then
Access1 =
True
      If(Pass =
Me .oReader2)
Then
      Access2 =
True
      End
If
End
If
Return Access1
And Access2

End
Function

aprè j'ai cliqué 2 fois sur le login et j'ai écrit le code suivant:
Protected

Sub Login1_Authenticate(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.AuthenticateEventArgs)
Handles Login1.Authenticate

Dim Acc
As
Boolean = LogIn(
Me.Login1.UserName,
Me.Login1.Password)

If (Acc)
Then
e.Authenticated =
True
Response.Redirect(
"entree_admin.aspx")

Else
e.Authenticated =
False
Response.Redirect(
"acces.aspx")

End
If
End
Sub Mais ça n'a pas marché, déja j'ai des erreurs sur les lignes qui sont écrits en rouge sachant que toujours j'ai des problèmes au niveau de l'appel des resultats des requêtes. Pourriez vous m'aider? Merci d'avance 

[mailto:S@R S@R]@

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
24 août 2008 à 17:38
Salut

Reader est un enumerateur et non une collection.

Transforme ta requete
par select count(password) as nb from password where log_in= @UserName
and password = @
password"

myCommand2("
@UserName")  = username

myCommand2("
@
password
")  =
password

Ta requete n'utilisais pas les parametres de ta fonction 

oReader2 = myCommand2.ExecuteReader()

par

int nb = (int) myCommand2.ExecuteScalar()

et ta fonction retourne un boolean

return (nb==1) ' test  en ligne

//code non testé

Bon courage
0
saritanet Messages postés 32 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 septembre 2008
25 août 2008 à 03:52
Merci beaucoup pour l'aide, c'est très gentil de votre part. j'ai appliqué ce que vous avez écrit mais une erreur bizzare s'est produite, au niveau de débagage il n'ya aucun erreur mais lorsque j'entre le nom d'utlisateur et le mot de passe, cela m'affiche l'erreur suivant:
La variable '@logiin' doit être déclarée.   ' @logiin correspond  à votre @UserName
Ligne 40 : myCommand1.Connection.Open()
Ligne 41 : nb = myCommand1.ExecuteScalar()
Ligne 42 : myCommand1.Connection.Close()

j'ai déja déclaré nb au début: Dim

nb
As
Integer
La requête est la suivante pour que vous assurez qu'il n'y a aucune faute
maRequete1 =

" select count(password) as nb from password where (log_in= @logiin) and (password= @password)"myCommand1 =

New SqlCommand(maRequete1, maConnexionSQLsrv)

With myCommand3.Parameters.Add(

New SqlParameter(
"@logiin", SqlDbType.Char, 50)).Add(

New SqlParameter(
"@password", SqlDbType.Char, 100))

End
With

With myCommand3.Parameters(

"@logiin").Value =
Me.Login1.UserName.Parameters(

"@password").Value =
Me.Login1.Password

End
With

[mailto:S@R S@R]@
0
saritanet Messages postés 32 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 5 septembre 2008
29 août 2008 à 12:38
Bonjour,


Est ce que vous pouvez me proposer une autre méthode pour que ça marche? merci beaucoup



[mailto:S@R

S@R

]

@
0
Rejoignez-nous