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

ASP.NET Discussion :

Limiter le nombre de tentatives de connexion à 3


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Par défaut Limiter le nombre de tentatives de connexion à 3
    Bonjour,
    je suis débutant sur la programmation ASP.net et suis autodidacte.
    J'ai développé un extranet couplé avec une base SQL Server et j'utilise le mode Formulaire pour l'authentification.

    je voudrais limiter le nombre de tentatives de connexion à 3.

    l'utilisateur tape son login + mdp et si c'est érroné après 3 tentatives je le redirige vers une page de demande de login + mdp.

    voici le code utilisé jusqu'à maintenant :

    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
     
        Private Sub Btn_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Connect.Click
            Dim myConnString As String = System.Configuration.ConfigurationSettings.AppSettings("Connectionstring2")
            Dim myConnection As New SqlConnection(myConnString)
            Dim Profil As String
            Dim i As Integer
            Dim mySelectQuery As String
            mySelectQuery = "SELECT dbo.UTILISATEURS.* "
            mySelectQuery = mySelectQuery + " FROM  dbo.UTILISATEURS "
            mySelectQuery = mySelectQuery + " WHERE dbo.UTILISATEURS.NOM='"
            mySelectQuery = mySelectQuery + Trim(T_USER.Text) + "' AND dbo.UTILISATEURS.MDP='" + T_Password.Text + "'"
            mySelectQuery = mySelectQuery + " ORDER BY ID "
            myConnection.Open()
            Dim myCommand As New SqlCommand(mySelectQuery, myConnection)
            Dim myReader As SqlDataReader = myCommand.ExecuteReader()
            Dim x As Integer
            If myReader.Read = False Then
                L_Error.Visible = True
                L_Error.Text = "Erreur de saisie, Il vous reste " & x - 1 & " tentatives"
            Else
                FormsAuthentication.RedirectFromLoginPage(T_USER.Text, False)
                Profil = myReader.GetString(3)
                Session("NOMPER") = myReader.GetString(1)
                Session("PREPER") = myReader.GetString(2)
                Session("UTIL") = myReader.GetString(3) ' variable Profil (PROFIL dans Table UTILISATEURS)
                Session("CLT") = myReader.GetString(4)  ' variable client (NOM_CLT dans Table UTILISATUERS) 
                Session("MDP") = myReader.GetString(5)
                Session("LOGIN") = Me.T_USER.Text
                Select Case Profil
                    Case "Nazca" : Response.Redirect("L_GLOBAUX.aspx") 'Session amdinistrateur
                    Case "MultipleF" : Response.Redirect("L_TL_NAZCA.aspx") 'Session TL Fabrice
                    Case "MultipleG" : Response.Redirect("L_TL_NAZCA.aspx") 'Session TL GAMAL
                        'Case "Client" : Response.Redirect("L_CLIENT.aspx") ' Session Client
                    Case "Client" : Response.Redirect("L_INTER.aspx")
                    Case Else : Response.Write("Aucun profil détécté, veuillez contacter le support technique")
                End Select
            End If
        End Sub
    End Class
    Merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Salut

    D'abords tu t'enquiquine la vie pour pas grand chose, le MemberShip solutionne la plupart de tes soucis de gestion de connexion et d'authentification. Mais bon, ensuite on peut vouloir une solutin purement maison.

    Alors le principe de ce que tu veux faire passe apr une variable de session que tu enrichi à chaque passage dans la boucle de test.
    Si elle dépasse un certain nombre, genre 3 dans ton cas, tu redirige vers une page et éventuellement, tu flag un truc dans la base qui vérouille le compte.

    Voilà la théorie du problème.
    Est ce que cela répond à ta question ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Par défaut
    Bonjour,

    d'abord, merci pour cette réponse.
    sinon, je connais le principe mais mon souci c'est que j'ai du mal avec la boucle For.
    en fait, j'avais utilisé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim x As Integer
    for i =1 to 3
        for x = 3 to 1 step -1
            If myReader.Read = False Then
                L_Error.Visible = True
                L_Error.Text = "Erreur de saisie, Il vous reste " & x - 1 & " tentatives"
            end if
            if i =3 then
                 response.redirect("page.aspx")
            end if
         next x
    next i
    mais j'ai du louper un truc par ce que celà ne marche pas.

    Merci

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Le truc que t'as loupé, c'est qu'il faut pas faire de boucle, faut juste tester ta variable avant ou aprés (selon l'effet désiré) de faire le test de login et mot de passe.

    Par rapport à ton premier bout de code, dans le Case Lese, tu charges ta variable de session genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Session("blocage") += 1
    Ensuite avant ou aprés ton test, tu fais le test de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Session("blocage") > 3 then
          Redirect ("page de blocage")
    End if
    Et enfin, sur ta page de blocage tu n'oublie pas de vider ta variable de session.
    Moi, en plus, je flague un truc dans la BDD, gene un champ booléen qui dit si le compte a subi plus de trois tentatives, il ne peut plus se reconnecter, même avec le bon mot de passe.
    ça c'est pour luter contre les logiciels, genre BrutalForce

    Voilà, est ce que c'est plus clair ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Par défaut
    je teste et je te tiens au courant.

    Merci bcp

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Par défaut
    c'est bon, ça fonctionne, il ne me reste plus qu'a bine organiser out ça.

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Limiter le nombre de tentatives de connexion
    Par mapmip dans le forum Administration
    Réponses: 3
    Dernier message: 09/01/2014, 03h11
  2. CentOS Limiter le nombre de tentative ouverture session
    Par bbkenny dans le forum Sécurité
    Réponses: 4
    Dernier message: 06/03/2013, 17h16
  3. Réponses: 2
    Dernier message: 25/09/2006, 10h50
  4. Limiter de nombre de connexions simultanées
    Par Drahu dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/09/2005, 11h43
  5. limiter le nombre de connexion VB-Oracle
    Par lonestar dans le forum Oracle
    Réponses: 12
    Dernier message: 05/08/2005, 12h29

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