none
formulaire d'authentification RRS feed

  • Question

  • Bonjours,

    Quelqu’un peut-il m’aider à écrire du code qui va implémenter un formulaire d’authentification. Si l’utilisateur entre trois fois de suite un mot de passe ou un nom d’utilisateur incorrect le programme s’arrête.

    Voici ce que j’ai essayé mais ça ne tient pas :

     

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

            Dim i As Integer

            Dim c As TextBox = Textbox1

            Dim h As TextBox = TextBox2

     

            i = 0

            Do

                If c.Text = "charry" And h.Text = "19871987" Then

                    Me.Hide()

                    Form1.Show()

                    Exit Do

                ElseIf c.Text = "charry" And h.Text <> "19871987" Then

     

                    MsgBox("Mot de pass incorrect", MsgBoxStyle.Critical)

     

                    i = i + 1

                    h.Text = ""

                    h.Focus()

     

                ElseIf c.Text <> "charry" And h.Text = "19871987" Then

     

                    MsgBox("Nom d'utilisateur incorrect", MsgBoxStyle.Critical)

     

                    i = i + 1

     

     

                    c.Text = ""

                    c.Focus()

                ElseIf c.Text <> "charry" And h.Text <> "19871987" Then

                    MsgBox("Mot de pass et Nom d'utilisateur incorrect", MsgBoxStyle.Critical)

     

                    i = i + 1

                    c.Text = ""

                    h.Text = ""

                    c.Focus()

                End If

               

     

            Loop Until i = 3

            If i = 3 Then

                Application.Exit()

            End If

     

        End Sub

    vendredi 16 mai 2008 10:59

Réponses

  • Bonjour,

     

    lorsque l'utilisateur clique sur le bouton Ok, l'évenement Ok_Click est déclenché et le code qui se trouve à l'intérieur est executé. La boucle que vous effectuez tourne sur votre formulaire 3 fois, et il n'y a pas d'arrêt pour que l'utilisateur puisse modifier les informations, du coup si les informations sont fausses dès le départ votre application se fermera. La méthode Focus d'une textbox ne permet que de mettre le curseur sur le contrôle souhaité et non de donner le focus sur la form.

     

    Pour que votre code fonctionne je déclarerais i comme une propriété de votre classe et en l'initialisant dans l'évenement Load de votre application par exemple :

     

    Code Snippet

    Public Class Form1

     

    Dim i As Integer

     

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    i = 0

    End Sub

     

    Private Sub Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ok.Click

    Dim c As TextBox = TextBox1

    Dim h As TextBox = TextBox2

     

    If c.Text = "charry" And h.Text = "19871987" Then

    Me.Hide()

    ElseIf c.Text = "charry" And h.Text <> "19871987" Then

    MsgBox("Mot de pass incorrect", MsgBoxStyle.Critical)

    i = i + 1

    h.Text = ""

    h.Focus()

    ElseIf c.Text <> "charry" And h.Text = "19871987" Then

    MsgBox("Nom d'utilisateur incorrect", MsgBoxStyle.Critical)

    i = i + 1

    c.Text = ""

    c.Focus()

    ElseIf c.Text <> "charry" And h.Text <> "19871987" Then

    MsgBox("Mot de pass et Nom d'utilisateur incorrect", MsgBoxStyle.Critical)

    i = i + 1

    c.Text = ""

    h.Text = ""

    c.Focus()

    End If

     

    If i = 3 Then

    Application.Exit()

    End If

     

    End Sub

     

    End Class

     

     

     

    En espérant avoir pu vous aider.

     

    Audrey 

    vendredi 16 mai 2008 12:38

Toutes les réponses

  • Bonjour,

     

    lorsque l'utilisateur clique sur le bouton Ok, l'évenement Ok_Click est déclenché et le code qui se trouve à l'intérieur est executé. La boucle que vous effectuez tourne sur votre formulaire 3 fois, et il n'y a pas d'arrêt pour que l'utilisateur puisse modifier les informations, du coup si les informations sont fausses dès le départ votre application se fermera. La méthode Focus d'une textbox ne permet que de mettre le curseur sur le contrôle souhaité et non de donner le focus sur la form.

     

    Pour que votre code fonctionne je déclarerais i comme une propriété de votre classe et en l'initialisant dans l'évenement Load de votre application par exemple :

     

    Code Snippet

    Public Class Form1

     

    Dim i As Integer

     

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    i = 0

    End Sub

     

    Private Sub Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ok.Click

    Dim c As TextBox = TextBox1

    Dim h As TextBox = TextBox2

     

    If c.Text = "charry" And h.Text = "19871987" Then

    Me.Hide()

    ElseIf c.Text = "charry" And h.Text <> "19871987" Then

    MsgBox("Mot de pass incorrect", MsgBoxStyle.Critical)

    i = i + 1

    h.Text = ""

    h.Focus()

    ElseIf c.Text <> "charry" And h.Text = "19871987" Then

    MsgBox("Nom d'utilisateur incorrect", MsgBoxStyle.Critical)

    i = i + 1

    c.Text = ""

    c.Focus()

    ElseIf c.Text <> "charry" And h.Text <> "19871987" Then

    MsgBox("Mot de pass et Nom d'utilisateur incorrect", MsgBoxStyle.Critical)

    i = i + 1

    c.Text = ""

    h.Text = ""

    c.Focus()

    End If

     

    If i = 3 Then

    Application.Exit()

    End If

     

    End Sub

     

    End Class

     

     

     

    En espérant avoir pu vous aider.

     

    Audrey 

    vendredi 16 mai 2008 12:38
  • je suis très heureux de votre générosité

    jeudi 22 mai 2008 09:41