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

C# Discussion :

problème de données dans un projet c#


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut problème de données dans un projet c#
    Bonjour je suis occupé à faire un projet en wpf c# et je récupère mes données via Web Api avec un fichier Json,

    Je récupère bien mon Id ainsi que mon mot de passe mais mon login non je ne sais pas pourquoi pouvez-vous m'aider voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private async void GetLogin()
            {
                var response = await httpClient.GetAsync("api/Login");
                if (response.IsSuccessStatusCode)
                {
                    var login = await response.Content.ReadAsStringAsync();
                    var log = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<Logins>>(login);
    grLogin.DataContext = log;
     
                }
            }
    merci d'avance de vos réponse

  2. #2
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 196
    Points : 331
    Points
    331
    Par défaut
    Je ne connais pas la librairie de décodage JSon que tu utilise mais a mon avis la structure du JSon renvoyer par le WebService ne colle pas avec celle de la classe Logins. Peut tu poster le JSon brut renvoyer par le WebService ainsi que le contenu de la classe Logins ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour merci pour votre réponse j'ai reçu une réponse via un autre réseau et ils ont proposé la même chose le Web Json renvoyait un autre nom que ma classe sur ce point c'est réglé merci;
    Maintenant comme je récupère différent login et mot de passe quand je vérifie si ils sont égal à ceux que j'ai rentré il me dit que le login ou mot de passe est incorrect mais quand je fait un débug pas à pas sous visual studio là je vois que c'est le même mot de passe.
    et aussi comment jefaire pour lui dire de faire la comparaison avec le bon mot de passe et le login que j'ai récupéré via le fichier json.
    voici le code c#
    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 async void GetLogin()
            {
                var response = await httpClient.GetAsync("api/Login");
                if (response.IsSuccessStatusCode)
                {
                    var login = await response.Content.ReadAsStringAsync();
                    var log = Newtonsoft.Json.JsonConvert.DeserializeObject<IEnumerable<Logins>>(login);
     
                    grLogin.DataContext = log;
     
     
                }
            }
     
            private string GetMd5Hash(MD5 md5Hash, string _mdp)
            {
                byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(_mdp));
     
                StringBuilder sBuilder = new StringBuilder();
     
                for (int i = 0; i < data.Length; i++)
                {
                    sBuilder.Append(data[i].ToString("x2"));
                }
                return sBuilder.ToString();
            }
     
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                using (MD5 md5Hash = MD5.Create())
                {
                    hash = GetMd5Hash(md5Hash, tbPassword.Password);
                }
     
                if (lbLog.Content != tbLogin.Text && lbMdp.Content != hash)
                {
                    MainWindow.Show();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Le login ou le password est incorrect");
                }
            }
    et le code du service web Json
    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
    Login
     
    API	Description
    GET api/Login	
    No documentation available.
    ******************* code généré**************
    [
      {
        "Id": 1,
        "LonginUser": "sample string 2",
        "Password": "sample string 3"
      },
      {
        "Id": 1,
        "LonginUser": "sample string 2",
        "Password": "sample string 3"
      }
    ]
    **********************************
    GET api/Login/GetAll/{customerID}	
    No documentation available.
    **************code généré ***************************
    Sample:
    [
      {
        "Id": 1,
        "LonginUser": "sample string 2",
        "Password": "sample string 3"
      },
      {
        "Id": 1,
        "LonginUser": "sample string 2",
        "Password": "sample string 3"
      }
    ]
    ************************************************************
    merci d'avance de vos réponse

  4. #4
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 196
    Points : 331
    Points
    331
    Par défaut
    Comment compare tu les mot de passe ? Avec l'operateur == , avec la méthode Equals delà classe Object ou avec la méthode static String.Compare ? Cette dernière méthode devrais convenir http://msdn.microsoft.com/fr-fr/libr...vs.110%29.aspx , mais c'est peut être aussi un problème dans ta boucle, peut tu poster la partie du code qui compare les mots de passe ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    c'est justement là que je bloque je ne vois pas comment je dois bouclé pour la vérification voici le code que j'ai fait
    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
    private void Button_Click(object sender, RoutedEventArgs e)
            {
                using (MD5 md5Hash = MD5.Create())
                {
                    hash = GetMd5Hash(md5Hash, tbPassword.Password);
                }
     
                if (lbLog.Content == tbLogin.Text && lbMdp.Content == hash) // tu conseil de utiliser equal ?
                {
                    MainWindow.Show();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Le login ou le password est incorrect");
                }
            }

  6. #6
    Membre averti
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Novembre 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 196
    Points : 331
    Points
    331
    Par défaut
    Déjà je casterais en String les propriétés Content des deux contrôles car Content est du type Object. On ne compare pas des choux et des carottes ... Ensuite tu utilise Md5 pour hacher le password saisie et le comparer avec celui du label, mais dans ton JSon originale la password n'est pas hacher. A mon avis tu supprime la partie Md5 et c'est bon. Si tu veut utiliser Md5 pour ne pas que le mot de passe circule en clair sur le réseau tu doit modifier le Web service pour qu'il prenne deux paramètres, lorsque tu l'appelle tu lui envoie le hash Md5 du password saisie dans ton application et le login . c'est le WebService qui fait la comparaison entre le hash Md5 que tu lui envoie et le hash Md5 du password stocké en base de donnée pour le login passer en paramètre. (Le stockage en base de données n'est qu'un exemple)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    merci pour tous les conseils pour finie j'ai simplifié j'ai crée une liste qui récupère les données du fichier json et je les compare dans une boucle "for" comme dans ma db mon mot passe est déjà cripter cela fonctionne
    bonne soirée

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

Discussions similaires

  1. [EJB3] Problème d'utilisation dans un projet Web
    Par zinia dans le forum Java EE
    Réponses: 9
    Dernier message: 13/06/2008, 17h53
  2. Problème affichage données dans listview
    Par Alixe80 dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 13/05/2008, 20h42
  3. Problème gestion données dans cin
    Par Jean_guy dans le forum C++
    Réponses: 2
    Dernier message: 04/02/2008, 09h28
  4. [MySQL] problème ajout donnée dans BDD via php
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/05/2006, 23h41
  5. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27

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