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

Sécurité Discussion :

Identification par formulaire


Sujet :

Sécurité

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut Identification par formulaire
    Bonjour;

    Dans mon application, je dois mettrer un formuliare d'identification au démarrage qui va pouvoir permettre au deux type d'utilisateur (opérateur ou administarteur) d'accéder à deux menus (menu_admin ou menu_user) différents selon leur statuts, l'identification se fait par pseudo et mot de passe.

    les données sur les utilisateurs sont mis dans une table User (Id, Nom(pseudo), PAsswd, Statut).

    Je n'arrive pas à mettre les conditions ni en macros ni en code VB (d'ailleurs jy suis débtante).

    Que faire?

    Bon Ciel

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    pense à regarder la FAQ :
    http://access.developpez.com/faq/?page=TAAdmin#login

  3. #3
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut Formulaire avec mot passe
    Je suis dans le même cas et je n'arrive pas trouver réponse à mon problème:
    j'ai créé une Table TA Motpasse avec 3 champs(N° ordre, Nom et Mot de passe)et un formulaire d'identification pour être autorisé à ouvrir un formulaire d'accueil.
    Ce formulaire d'identification Fo Motpasse permet d'introduire son login (Nom avec choix sur zone de liste modifiable) et son mot de passe . Ce principe fonctionne uniquement avec le 1 er nom et le 1er mot de passe de la table. J'ai l"impression qu'il manque quelque chose dans la sql ou dans la formulation de l'identification en code VBA.
    L'exemple formulairee login/mot de passe sur le site ne répond pas tout à fait à mon application;il y a plus simple je pense.
    merci pour l'aide

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Re bonsoir

    Moi aussi je suis passé par ce lien, je ne sais pas si je pourrai dire si ça m'a servi ou pas mais quand j'utilise le code dans mon apllication avec quelques modifications ça ne marche pas, peut etre parce que je suis encore débutante en VB et que j'ai pas réussie à ajuster le code selon mon cas:

    Dans l'exemple ça renvoie vers un seul formulaire , pour mon application j'ai deux cas, et qui dépend du statut de l'utilisateur .

    J'éspère que j'étais assez claire


    Bon Ciel

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Bonjour!

    Voici le code que j'ai mis pour l'identification mais ça m'affiche toujours un message d'erreur!

    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
     Private Sub cmd_connexion_Click()
     
    Me.Requery
    Dim sql, User_id, User_profil As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      If Profil = "Administrateur" Then
     
      DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
      DoCmd.Close acForm, "Identification"
      User_id = rs("Utilisateur").Value
      User_profil = rs("profil").Value
     
      Else
      DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
      DoCmd.Close acForm, "Identification"
      User_id = rs("Utilisateur").Value
      User_profil = rs("profil").Value
     
    Else
      MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
      i = i + 1
    End If
    If i = 3 Then
    MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
    DoCmd.Quit
    End If
     
     
    End Sub
    Et c'est à partir du lien envoyé ci-dessus que j'ai mis ce code.
    J'éspère que je me suis bien expliquer


    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu ne testes ici que le premier enregistrement trouver dans ta requête SQL.

    Tu testes si tu es à la fin
    Mais tu ne parcours pas la table Utilisateur, il faut faire une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    While not rs.EOF
         .....
         rs.MoveNext
    Wend
    Donc tant que tu n'es pas à la fin tu effectues tes tests, si tes tests sont bons tu faispour te positionner au dernier, sinon avec le MoveNext tu vas sur le prochain User pour tester.

    Starec

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Salut

    ça m'affiche toujours un message d'erreur:

    L'expression sur Clic entrée comme paramètre de la propriété de type évènement est à l'origine d'une erreur. Type défini par l'utilisateur non défini

    • Le résultat de l'expression n'est pas le nom d'une macro, le nom d'une fonction définie par l'utilisateur ou [Event procedure]
    • Une erreur a peut etre été comise losr de l'évaluation d'une fonction, d'un évènement ou d'une macro.


    Et voici le code modifié
    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
    Private Sub cmd_connexion_Click()
     
    Me.Requery
    Dim sql, User_id, User_profil As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
    Set rs = CurrentDb.OpenRecordset(sql)
    While Not rs.EOF
      If Profil = "Administrateur" Then
     
      DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
      DoCmd.Close acForm, "Identification"
      User_id = rs("Utilisateur").Value
      User_profil = rs("profil").Value
      rs.MoveLast
     
     
      Else
      DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
      DoCmd.Close acForm, "Identification"
      User_id = rs("Utilisateur").Value
      User_profil = rs("profil").Value
      rs.MoveLast
     
      End If
     
      rs.MoveNext
    Wend
     
      MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
      i = i + 1
     
    If i = 3 Then
    MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
    DoCmd.Quit
    End If
     
     
    End Sub
    Cordialement

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Bonjour!

    Je n'ai toujours pas trouvé de solutio pour ce problème et le vendredi je dois rendre le projet. Jy bloque toujours et aucun tutoriel ou TAQ ne m'a aidé à trouver une solution adéquate :s

    SVP si vous avez une solution quelconque ou si ça peut se faire à l'aide de l'assiatnt merci de l'indiquer

    Bonne journée

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut Ajouter Microsotf DAO au projet
    Salut

    Je pense que j'ai pu localisé mon erreur. Je n'ai pas ajouter Microsoft DAO à mon projet et je ne sais pas comment faire!

    Merci de m'indiquer comment!


  10. #10
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Bonjour,

    Pour ajouter une référence, tu cliques dans le menu Outils de la fenetre VBE
    puis tu cliques références
    Dans la fenetre affichée, tu recherches Microsoft DAO 3.6 et tu l'actives

    Jeannot

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Salut !

    merci ça m'a débloqué le problème. Mais un autre message s'affiche au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set rst = CurrentDb.OpenRecordset(Ssql)
    Il dit qu'il ya un paramètre qui manque

    Que faire alors?

  12. #12
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst = CurrentDb.OpenRecordset(Sql)
    et non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst = CurrentDb.OpenRecordset(Ssql)
    Domi2

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut


    Toujours le mème message "Un paramètre est attendu"

  14. #14
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Une table ==> Utilisateur

    Avec 3 champs de type texte, sot Nom, Passwd, Profil (enfin, c'est comme ça que j'ai compris ta table).

    Le code :

    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
    Private Sub cmd_connexion_Click()
     
        Me.Requery
     
        Dim sql, User_id, User_profil As String
        Dim rs As DAO.Recordset
     
        Static i As Byte
     
        sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
     
        Set rs = CurrentDb.OpenRecordset(sql)
        If Not rs.EOF Then
     
            User_id = rs("Nom").Value
            User_profil = rs("Profil").Value
     
            If User_profil = "Administrateur" Then
     
                DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
                DoCmd.Close acForm, "Identification"
     
            Else
                DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
                DoCmd.Close acForm, "Identification"
     
            End If
     
        Else
     
            MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
            i = i + 1
     
        End If
     
        If i = 3 Then
     
            MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
     
            DoCmd.Quit
     
        End If
     
    End Sub
    Ca fonctionne ?

    Domi2

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut Délestage à l'horizon


    Bonjour!

    Merci pour ton aide mais g toujours des messages d'erreur; je crois que je vais laisser tomber, ça me dépasse.

    Merci de votre aide!
    J'adore ce forum


  16. #16
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Merci pour ton aide mais g toujours des messages d'erreur; je crois que je vais laisser tomber, ça me dépasse.
    J'ai testé mon code, il fonctionne !

    1) Ta table s'appelle bien Utilisateur ?

    2) Dans cette table, tu as bien les 3 champs mentionnées ?

    3) Nom = Nom de l'utilisateur

    4) Passwd = Mot de passe

    5) Profil = administrateur, utilisateur, etc...

    6) La référence DAO est bien cochée dans les références ?

    Ca coince où ? quelles sont les messages d'erreurs ? Si tu cliques sur débogage, qu'elle est la ligne surlignée en jaune ?

    Si tu délestes

    Domi2

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Salut!

    Normelment je dois parcourrir tout les résultat donnés par le fichier et non seulement la 1ère ligne, g donc mis une boucle While. voici le code:

    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
     
    Private Sub cmd_connexion_Click()
    Me.Requery
     
        Dim sql, User_id, User_profil As String
        Dim rs As DAO.Recordset
     
     
        Static i As Integer
        i = 0
     
     
        sql = "SELECT * FROM Utilisateur WHERE Nom = '" & Me.txt_user & "' AND passwd ='" & Me.txt_pass & "';"
     
        Set rs = CurrentDb.Recordset(sql)
        While (Not rs.EOF)
     
            User_id = rs("Nom").Value
            User_profil = rs("Profil").Value
     
            If User_profil = "Administrateur" Then
     
                DoCmd.OpenForm "menu_admin", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu admin
                DoCmd.Close acForm, "Identification"
                rs.MoveLast
     
     
            Else
            If User_profil = "Opérateur" Then
     
                DoCmd.OpenForm "DA_user", acNormal, , , , acWindowNormal 'mettre Le formulaire Menu user
                DoCmd.Close acForm, "Identification"
                rs.MoveLast
     
            Else
            rs.MoveNext
            End If
            End If
     
       Wend
     
        If rs.EOF Then
     
            MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
            i = i + 1
     
        End If
     
        If i = 3 Then
     
            MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
            rs("Statut").Value = "Bloqué"
            DoCmd.Quit
     
        End If
     
     
    End Sub
    aussi au début avant que je met le while ça m'affichais une ligen ejuen au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set rs = CurrentDb.Recordset(sql)
    Maintenant ça me donne ce message:
    L'expression sur clic entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. Membre de méthode ou de donéne introuvable

    Aussi tout ce que vous dites est juste. Microsoft DAO est bien coché et le reste des donnée est correcte.


  18. #18
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Vérifies encore que le nom des contrôles de ton formulaire correspondent bien, soit txt_user et txt_pass.

    Et ensuite, tu colles LE CODE que je t'ai donné, et pas le tien...

    Domi2

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 32
    Points
    32
    Par défaut
    Re,

    G utiliser le code que tu m'as envoyé, ça me donne une ligne jaune sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = CurrentDb.OpenRecordset(sql)
    On me dit que le type de données est incompatible!

    Devrais-je activer quelque chose comme une bibliothèque ou autre pour que ça fonctionne?

  20. #20
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    En principe, la seule bibliothèque à rajouter et DAO

    Peux-tu donner une description exact de ta table (Nom de la table, nom et types des champs utilisés) et le nom des champs de ton formulaire de connexion.

    Tu peux également poster ta base (enfin, le formulaire et la table suffisent).

    Domi2

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/07/2005, 20h53
  2. [1.1] Authentification par formulaire
    Par kakek dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/05/2005, 09h37
  3. Réponses: 3
    Dernier message: 23/02/2005, 16h51
  4. Réponses: 2
    Dernier message: 30/11/2004, 02h36
  5. Identification par ip
    Par Dante dans le forum Développement
    Réponses: 9
    Dernier message: 12/01/2004, 12h20

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