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

Langages Discussion :

QAuthentification dans un Winform [Débutant]


Sujet :

Langages

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2012
    Messages : 79
    Points : 64
    Points
    64
    Par défaut QAuthentification dans un Winform
    Bonjour les amis!

    Je vous expose mon problème :

    J'ai un Login form avec 3 champs: Nom,Pwd et Type

    j'aimerais associé à chaque Type des restrictions à l'ouverture du Main Menu notamment au Niveau des Items.
    Que chaque profil type voit uniquement le Item qui le concerne,et je me suis pris de cette façon dans ce bout de code
    mais hélas ça ne marche pas
    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
     private void button1_Click(object sender, EventArgs e)
            {
     
                SqlConnection con = new SqlConnection(connexion.getconnexion());
                SqlDataAdapter da;
                DataTable dt = new System.Data.DataTable();
     
                string query;
                query="select * from tbl_user where Nom='" + textBox1.Text + "' and Password='" + textBox2.Text + "' and UserType='"+comboBox1.Text+"'";
                da = new SqlDataAdapter(query, con);
                da.Fill(dt);
     
                if (dt.Rows.Count > 0)
                {
                    string role = dt.Rows[0]["UserType"].ToString();
                    switch (role)
                    {
                        case "profil1":
     
                            Menu m = new Menu();
                            m.ShowDialog();
                            m.MainMenuStrip.Items["formationToolStripMenuItem"].Visible = false;
                            m.MainMenuStrip.Items["gestionDesAgentsToolStripMenuItem"].Visible = false;
                            m.MainMenuStrip.Items["gestionDesCongésToolStripMenuItem"].Visible = false;
     
                            this.Hide();
                            break;
                    }
                }
                else
                        MessageBox.Show("Invalid Username and Password...");
                }

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    je vais me forcer à faire abstraction de la requête concat , et parlons plutôt de ton problème actuel.
    "ça ne marche pas" ne nous aide pas trop à identifier le souci. Il intervient au niveau :
    - de la requête ?
    - du résultat de la requête ?
    - du visible/hidden des tes items ?
    Et ça "ne fonctionne pas" et c'est tout, ou tu as une exception levée quelque part ?

    NB : je vois pas où tu ouvres la connexion dans cet extrait de code (méthode Open() de SqlConnection).
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2012
    Messages : 79
    Points : 64
    Points
    64
    Par défaut
    Sorry!

    C'est au niveau des Items du MainMenu que ça coince,en fait ils sont toujours visibles

    et pour ma connexion j'ai crée une classe connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class connexion
        {
            public static string getconnexion()
            {
                return "server=localhost;database=RH_PRN;uid=sa;Password=Admin";
            }
        }

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Ta classe connexion propose une méthode static pour obtenir la chaine de connexion (nécessaire pour son initialisation), mais a aucun moment tu ouvres cette connexion (nécessaire pour son utilisation), en tout cas dans le code montré.

    T'es passé en mode debug pas-à-pas pour voir si ça se passe comme ça devrait ?
    Pas de crash sur l'appel à Fill ? La fonction renvoie une valeur supérieur à 0 ? dt n'est pas null ? dt.Rows n'est pas null ? dt.Rows.Count est-il effectivement supérieur à 0 ? dt.Rows[0]["UserType"] n'est pas null ? role a bien la valeur attendu (à comparer avec requête équivalent sur ton client SqlServer préféré) ?
    Et reste encore le fonctionnement de Menu à checker ...
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2012
    Messages : 79
    Points : 64
    Points
    64
    Par défaut
    J'ai vérifié toutes voss interrogations et j'en suis toujours au même résultat ,le Menu s'affiche mais les Items toujours visibles

    En fait si vous avez une autre approche à me proposer je suis preneur,merci!

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Tu confirmes donc que ta variable role contient "profil1" ?
    Et aucune exception n'est jamais levée ?
    Menu est une classe à toi ?
    As-tu essayé de setter les attributs visible AVANT de faire le ShowDialog ?
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Citation Envoyé par Ashfor76 Voir le message
    J'ai vérifié toutes voss interrogations et j'en suis toujours au même résultat ,le Menu s'affiche mais les Items toujours visibles
    C'est normal. Le code dans le case est foireux. Il faut le remplacer par :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    switch (role)
                    {
                        case "profil1":
     
                            Menu m = new Menu();
                            m.MainMenuStrip.Items["formationToolStripMenuItem"].Visible = false;
                            m.MainMenuStrip.Items["gestionDesAgentsToolStripMenuItem"].Visible = false;
                            m.MainMenuStrip.Items["gestionDesCongésToolStripMenuItem"].Visible = false;
     
                            this.Hide();
                            m.ShowDialog();
                            break;
                    }

    la ligne m.ShowDialog() est bloquante tant que le formulaire n'est pas fermé ! Il faut donc masquer les éléments du menu avant. Ou sinon, il faut utiliser m.Show (mais attention, la forme ne sera plus modale).
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2012
    Messages : 79
    Points : 64
    Points
    64
    Par défaut
    Je vous remercie Monsieur François Dorin
    Le problème est résolu

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

Discussions similaires

  1. WinForms dans un WinForms
    Par Papy214 dans le forum C#
    Réponses: 2
    Dernier message: 04/12/2007, 18h01
  2. Avoir des panneaux réductibles et extensibles dans un WinForm
    Par ager1912 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/07/2007, 10h10
  3. affichage dans un Winform
    Par idream dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/07/2007, 17h01
  4. [C#]Edition de fichiers office dans une winform
    Par cyrille_naert dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/01/2007, 16h50
  5. [C#] Passer un dataset en paramètre dans un WinForm enfant
    Par iDaaX dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/01/2005, 21h55

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