IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Formulaire d'authentification (VB - SQL server)


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut Formulaire d'authentification (VB - SQL server)
    Bonjour, tout d'abord désolé si ce topic est mal placé =s.

    Je suis en 1ère année de BTS IG et je suis actuellement en période de stage. Et je rencontre quelques soucis dans la réalisation de mon projet qui consiste a créer un gestionnaire d'inventaire informatique. Je suis donc comme vous allez pouvoir le voir, un débutant confirmer ><

    Il faut que je crée un système d'authentification pour l'application, j'ai essayé pleins de méthode différentes, avec des commandes différentes et des éléments différents (datatable, dataset, datagrid...) ou encore un formuylaire de connexion (le login form), mais rien n'a abouti =S. J'utilise Visual basic express 2008 relié à une base de donnée "admin" contenant les identifiants et les mots de passe des utilisateurs que j'ai insérés ainsi qu'un numéro (int identity 1,1)

    Voila où en est mon code pour le moment :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
       Public Class Frm_Authentification
     
        Private Sub Frm_Authentification_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            'On interdit la saisie directement dans la grille
            DtgAuthentification.ReadOnly = True
            'Initialisation du nombre de colonnes
            DtgAuthentification.ColumnCount = 3
            'Définition des entêtes et de la taille des colonnes. Attention, la numérotation des colonnes commence à 0
            DtgAuthentification.Columns(0).Name = "Numéro de l'admin"
            DtgAuthentification.Columns(0).Width = 200
            DtgAuthentification.Columns(1).Name = "Nom d'utilisateur"
            DtgAuthentification.Columns(1).Width = 200
            DtgAuthentification.Columns(2).Name = "Mot de passe"
            DtgAuthentification.Columns(2).Width = 200
     
            'On cache les labels destinés a recevoir le login et le mdp
            Label1.Visible = False
            Label2.Visible = True
     
        End Sub
     
        Private Sub BtnFermer_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFermer.Click
            Close()
        End Sub
     
        Private Sub BtnConnecter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConnecter.Click
            DtgAuthentification.Rows.Clear()
     
            'tentative (try) d'ouverture d'une connexion avec le serveur de base de données
            'La propriété ConnectionString de notre objet connexion doit contenir les paramètres de connexion au serveur
            Dim Connexion As New SqlClient.SqlConnection
            Try
                Connexion.ConnectionString = "User ID=sa; PWD=UjGdAtRhjQjit8HNHoJy; Server=CLIXP-SQL2008\SQLSERVER2008; Database=Administration"
                'Ouverture de la connexion
                Connexion.Open()
            Catch probleme As Exception
                'En cas d'impossibilité, affichage d'un message
                MessageBox.Show("Impossible de se connecter." & probleme.Message)
            End Try
            'Test de l'état (state) de la connexion : 1 signifie que la connexion est ok
            If Connexion.State <> 1 Then
                MessageBox.Show("La connexion au serveur n'a pas été réalisée")
            Else
     
                'Déclaration d'une variable de type chaine de caractères destinée à stocker l'ordre SQL de selection
                Dim strRequete As String
                'Initialisation de cette variable
                strRequete = "SELECT NumAdmin, NomAdmin, PasswordAdmin FROM Administrateur where NomAdmin = '" & TxtUtilisateur.Text & "'"
                'tentative d'execution de la requete sur la base de données correspondante à notre connexion
                Try
                    'Déclaration et instanciation d'une requete avec la base de données
                    Dim Command As New SqlClient.SqlCommand(strRequete, Connexion)
                    'Déclaration d'un tableau de mémoire en lecture uniquement destiné à recevoir le résultat de la requete (SqlDataReader)
                    Dim SdrAuthentification As SqlClient.SqlDataReader
                    'Initialisation de ce tableau (execution de la requete)
                    SdrAuthentification = Command.ExecuteReader
                    'Parcours du tableau mémoire (SqlDataReader)
                    'Tant qu'il existe encore une ligne a lire
                    Do While SdrAuthentification.Read()
                        'Ajout de la detagridview d'une ligne correspondant à la ligne lue dans le tableau de mémoir
                        Me.DtgAuthentification.Rows.Add(SdrAuthentification("NumAdmin"), SdrAuthentification("NomAdmin"), SdrAuthentification("PasswordAdmin"))
     
                    Loop
     
     
     
                    'Chargement du datareader dans une datatable, qui va devenir la source de la combobox
                    Dim dt_Authentification As New DataTable()
                    dt_Authentification.Load(SdrAuthentification)
     
                    'Récupération du login et du mdp dans des labels
                    While SdrAuthentification.Read()
                        Label1.Text = SdrAuthentification.GetString(1)
                        Label2.Text = SdrAuthentification.GetString(2)
                    End While
     
                    'Comparaison avec les zones de saisis
                    If Label1.Text = TxtUtilisateur.Text AndAlso Label2.Text = TxtPassword.Text Then
     
                    End If
     
     
                    'fermeture de sqlDataReader
                    SdrAuthentification.Close()
                Catch probleme As Exception
                    MessageBox.Show("L'erreur suivante a été rencontrée :" + probleme.Message)
                End Try
            End If      
        End Sub
    End Class

    L'idée cette fois ci était de récupérer le login et le mdp dans une datagrid via une requête sql, puis de les affecter a des labels (1 et 2) et d'en suite comparer les zones de saisis avec ces labels.

    Je ne sais pas si c'est un problème de syntaxe ou plus de fond. En tout cas je suis un peu bloqué donc si quelqu'un pouvait m'expliquer ce qu'il cloche sa serait sympa.

    Merci d'avance

  2. #2
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Je ne vois pas trop pourquoi tu fais cela.

    En général, pour l'authentification, tu crées une table user dans ta base de données. Dans cette table, tu mets 3 champs (minimum) : Id , Username et Password (tu peux ajouter firstname, lastname, mail, profil au besoin).

    Ensuite, tu fais un formulaire qui va te servir pour saisir les informations de connexion avec 2 textbox (une pour le username, l'autre pour le mot de passe) et 2 boutons (un OK et un Annuler).

    Ensuite, le principe est le suivant :
    - L'utilisateur saisie son login et son mdp dans les champs.
    - Tu fais une requête du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM User WHERE Login = "Login_saisi" AND Password ="Password_saisi"
    - Si ta requête te retourne quelques choses, c'est que l'authentification est bonne sinon try again.

    Et ensuite, tu fais ce que tu veux.

    En espérant que ça t'aide.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    C'est en effet plus simple ^^
    Mais je vois pas l'instruction me permettant de dire " Si le résultat de la requete est null alors .... sinan... " si quelqu'un pouvait me le dire svp

  4. #4
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Et bien quand tu fais un Read(), si tu n'as rien en retour, c'est que l'authentification a échoué.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 150
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if reader.reader then
    instruction //////////
    else
    instruction
    end if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if dataset.Tables("matable").Rows.Count = 0 then
    instruction
    else
    instruction
    end if

  6. #6
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Merci jalalnet, j'avais plus le code en tête et la flemme de faire un nouveau projet pour ça.

  7. #7
    Invité de passage
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Par défaut
    Salut, je suis encore débutante en vb.net, alors je m'excuse si ma question est bête.
    Dans tn code, il y'a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Chargement du datareader dans une datatable, qui va devenir la source de la combobox
                    Dim dt_Authentification As New DataTable()
                    dt_Authentification.Load(SdrAuthentification)
    Stp, de quelle combobox parles-tu?

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/01/2010, 22h24
  2. page d'authentification avec sql server
    Par alicia26 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 14/05/2009, 18h19
  3. formulaire d'authentification avec base SQL Server
    Par tortuegenie dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/10/2008, 13h25
  4. formulaire authentification avec SQL server et VB.net
    Par riderfun dans le forum Accès aux données
    Réponses: 10
    Dernier message: 28/05/2008, 13h54
  5. Authentification Windows/SQL Server
    Par dily0403 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/06/2007, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo