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

IHM Discussion :

Problème d'utilisateur unique


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut Problème d'utilisateur unique
    Bonjour,

    J'ai un soucis avec ma gestion des utilisateurs. J'ai une base de donnée partagée sur un disque commun avec 3 utilisateurs, et je souhaiterais que lorsqu'un des utilisateurs se logge (admettons avec l'id: Admin) personne d'autre que lui ne puisse se logger sous le même loggin.

    Sauriez-vous comment faire?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 663
    Points : 34 368
    Points
    34 368
    Par défaut
    salut,
    une possibilité :
    les tables de paramètres dans laquelle tu tiens à jour la liste des personnes logguées à l'application.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    Je ne tiens pas à jour les personnes loggé, comment puis-je faire cela?
    Mon formulaire login redirige vers 2 formulaires différent selon le nom d'utilisateur (une page admin/ une page utilisateur), cependant il ne garde pas en mémoire les personnes loggés (enfin je n'ai rien crée de tel).

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 663
    Points : 34 368
    Points
    34 368
    Par défaut
    Un peu de lecture sur l'approche sous Access des tables de paramètres

    L'idée étant de stocker l'identifiant de la personne qui se loggue, et de le retirer une fois celle-ci délogguée.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    Merci pour l'aide,

    cependant je suis "débutant", en fait le lien que tu m'as donner explique comment récupérer une valeur en déclarant une fonction. Est-il nescessaire de stocker la valeur dans une nouvelle table?
    De plus une fois la valeur récuperer, quel condition dois-je ajouter à mon formulaire login, pour qu'il empeche l'ouverture du formulaire administrateur par exemple (celui-ci s'ouvre uniquement avec l'identifiant "admin") à deux utilisateur?

    Voici le code de mon formulaire login:

    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
    Private Sub Commande9_Click()
     
    Dim SQL As String
    Dim rs As DAO.Recordset
     
    ' requête
    SQL = "SELECT Utilisateur.* FROM Utilisateur WHERE NomUtilisateur = '" & Me.Identifiant.Column(1) & "' AND MdpUtilisateur ='" & Me.MotDePasse & "';"
    Set rs = CurrentDb.OpenRecordset(SQL)
    If Not rs.EOF Then
    'conditions
        Identifiant2 = Me.Identifiant.Column(1)
        Me.Refresh
        If Me.Identifiant = 1 Then
              DoCmd.OpenForm "PageAdministrateur", acNormal, , , , acWindowNormal
              DoCmd.Close acForm, "Login"
        ElseIf Me.Identifiant > 1 Then
              DoCmd.OpenForm "PageUtilisateur", acNormal, , , , acWindowNormal
              DoCmd.Close acForm, "Login"
        End If
    Else
        MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
    End If
    Debug.Print
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    J'ai un peu avancé depuis hier mais je n'ai toujours pas résolu mon problème.
    J'ai donc crée une table qui récupère le nom d'utilisateur des personnes qui se loggent, et si quelqu'un souhaite se logger avec le même nom d'utilisateur cela lui affiche que "quelqu'un est déjà logger sous ce nom d'utilisateur" et n'est pas rediriger vers la page souhaitée. Cependant cela ne fonctionne pas, voici mon 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
    'Bouton Entrer
    Private Sub Commande9_Click()
     
    Dim MdpUtilisateur As String
    Dim MSG As String
    Dim Recordset As DAO.Recordset
    Dim SQL As String
    Dim StrSQL As String
    Dim Valeur As String
     
    ' requête
    SQL = "SELECT Utilisateur.* FROM Utilisateur WHERE NomUtilisateur = '" & Me.Identifiant.Column(1) & "' AND MdpUtilisateur ='" & Me.MotDePasse & "';"
    Set Recordset = CurrentDb.OpenRecordset(SQL)
    If Not Recordset.EOF Then
    'conditions
        Identifiant2 = Me.Identifiant.Column(1)
        Me.Refresh
        If Me.Identifiant = 1 And Me.Identifiant <> Valeur Then
     
                    DoCmd.SetWarnings False
                    StrSQL = "INSERT INTO PARAMS (Intitule, Valeur) Values ('Pseudo','" & Identifiant2 & "');"
                    DoCmd.RunSQL StrSQL
                    DoCmd.OpenForm "PageAdministrateur", acNormal, , , , acWindowNormal
                    DoCmd.Close acForm, "Login"
     
        ElseIf Me.Identifiant > 1 And Me.Identifiant <> Valeur Then
     
                    DoCmd.SetWarnings False
                    StrSQL = "INSERT INTO PARAMS (Intitule, Valeur) Values ('Pseudo','" & Identifiant2 & "');"
                    DoCmd.RunSQL StrSQL
                    DoCmd.OpenForm "PageUtilisateur", acNormal, , , , acWindowNormal
                    DoCmd.Close acForm, "Login"
        Else
                    MsgBox ("L'identifiant est déjà utilisé par un autre utilisateur")
        End If
    Else
        If Me.Identifiant = "" Then
            MSG = MSG & "Veuillez sélectionner un identifiant!" & Chr(13) & Chr(10)
        End If
        If " & Me.MotDePasse & " = "" Or " & Me.MotDePasse & " <> MdpUtilisateur Then
            MSG = MSG & "Mot de passe invalide!" & Chr(13) & Chr(10)
        End If
        MsgBox MSG, vbInformation, "Connexion"
    End If
    Debug.Print
    End Sub

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    J'ai changé mes plans et réussis à faire ce que je voulais. J'ai crée un autre champs dans ma table Utilisateur (loggue), dans lequel il y a 1 quand l'utilisateur est connecté et 0 quand celui-ci ne l'est pas. J'ai fait en sorte d'empêcher la connection d'un utilisateur sous le même login. Lorsque l'utilisateur click sur le bouton Logout sur les autres formulaire celui-ci revient à 0 et permet la connection à d'autres utilisateurs sur ce login, seulement mon dernier problème provient du fait que si l'utilisateur quite le programme sans se délogguer, son etat reste à 1 et bloque totalement la connection même pour lui même.
    Ce que je voudrais c'est mettre en place un code qui définit que lorsque l'utilisateur quite le programme, son Etat (logge) revienne par défault à 0 (puisque celui-ci ne travaille plus sur le programme), or je ne sais comment faire. Auriez-vous une idée ?

    Voici mon code sur le formulaire login si jamais quelqu'un rencontrait ce problème dans le futur:

    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
    Private Sub Commande9_Click()
     
    Dim MdpUtilisateur As String
    Dim MSG As String
    Dim Rs As DAO.Recordset
    Dim SQL As String
    Dim StrSQL As String
    Dim loggue As Integer
     
        SQL = "SELECT Utilisateur.* FROM Utilisateur WHERE NomUtilisateur = '" & Me.Identifiant.Column(1) & "' AND MdpUtilisateur ='" & Me.MotDePasse & "';"
        Set Rs = CurrentDb.OpenRecordset(SQL)
    If Not Rs.EOF Then
            Identifiant2 = Me.Identifiant.Column(1) 'conditions
            Me.Refresh
            If Me.Identifiant = 1 Then
                If Me.MotDePasse = "" Then
                    MsgBox ("Vous n'avez pas saisis de mot de passe!")
                End If
                    If loggue = 0 Then
                        DoCmd.SetWarnings False
                        StrSQL = "UPDATE Utilisateur SET loggue = 1 WHERE NomUtilisateur = '" & Identifiant2 & "';"
                        DoCmd.RunSQL StrSQL
                        DoCmd.OpenForm "PageAdministrateur", acNormal, , , , acWindowNormal
                        DoCmd.Close acForm, "Login"
                    Else
                        MsgBox ("Une personne est déjà logguée sous ce nom d'utilisateur!")
                    End If
            ElseIf Me.Identifiant > 1 Then
                If Me.MotDePasse = "" Then
                    MsgBox ("Vous n'avez pas saisi de mot de passe!")
                End If
                    If loggue = 0 Then
                        DoCmd.SetWarnings False
                        StrSQL = "UPDATE Utilisateur SET loggue = 1 WHERE NomUtilisateur = '" & Identifiant2 & "';"
                        DoCmd.RunSQL StrSQL
                        DoCmd.OpenForm "PageUtilisateur", acNormal, , , , acWindowNormal
                        DoCmd.Close acForm, "Login"
                    Else
                        MsgBox ("Une personne est déjà logguée sous ce nom d'utilisateur!")
                    End If
            ElseIf Me.Identifiant = "" Then
                    MsgBox ("Veuillez sélectionner un identifiant!")
            End If
    Else
    MsgBox ("Mot de passe invalide!")
    End If
    End Sub

Discussions similaires

  1. Elever l'écran de bienvenue pr utilisateur unique
    Par beslam dans le forum Windows XP
    Réponses: 12
    Dernier message: 03/12/2006, 15h39
  2. Problème avec utilisateurs
    Par nicaud dans le forum Oracle
    Réponses: 7
    Dernier message: 07/06/2006, 15h52
  3. Problème authentification utilisateurs.
    Par Mevil dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 02/06/2006, 10h04
  4. [FreeBSD] Problème d'utilisateur
    Par Gnux dans le forum BSD
    Réponses: 2
    Dernier message: 12/04/2006, 16h54
  5. Problème blob(texte)unique
    Par cams dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/12/2005, 11h15

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