Probleme d'authentification

hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021 - Modifié le 16 oct. 2021 à 10:10
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 - 16 oct. 2021 à 11:57
Bonjour,
lors de la page d'authentification, il vérifie le login et mot de passe à partir d'un fichier XML mais il n'accède pas à la page voulue, j'ai sais pas c'est quoi le problème pourtant le code s'exécute.
merci de m'avoir aider
voila le code du bouton "connexion"

public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            bool result = MvcApplication.Users.Any(u => u.Login == model.login && u.Password == model.Password);

            if (result)
            {
                return RedirectToLocal(returnUrl);
            }
            return View(model);

18 réponses

Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
16 oct. 2021 à 11:57
Je vais me répéter une 3eme fois, le code semble correct, j’ai donc besoin de connaître le contenu des variables.
Je t’ai mis plus haut un lien vers un tuto sur l’utilisation des outils de déboggage.
Tant que tu ne fournis à minima model.login, model.password, et les propriétés Login et Password de chaque item dans MvcApplication.Users impossible pour moi de te dire si le problème est là, avant ou après
1
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
11 oct. 2021 à 12:38
Bonjour

Quand tu exécutes en pas à pas que se passe t il?

Pour tes prochains posts, merci d’utiliser les balises de codes, voir ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 12:53
Merci Mr de me repondre, comment faire l'exécution pas à pas?
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 13:07
c 'est bon Whismeril, j'ai fait l'exécution pas à pas mais j'ai rien remarqué,
le problème est le programme s'exécute bien et il vérifie le login et password dans fichier xml mais il ne se dirige pas vers la page d'accueil de l'application et les champs deviennent vide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
11 oct. 2021 à 15:40
Ok,

Donc le problème se situe peut-être dans la méthode RedirectToLocal.
Que se passe t il dans cette méthode ?
Quel en est le code?
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 16:47
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
return RedirectToAction("Index", "Home");
}
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
11 oct. 2021 à 17:17
Je t'ai demandé d'utiliser les balises de code et je t'ai mis un lien vers le petit tuto pour le faire correctement.

Je t'ai aussi demandé ce qu'il se passe dans cette méthode et tu n'en dis rien.

Si par cas, ça aller dans RedirectToAction mêmes choses
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 17:21
désolé M.
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 17:23
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
return RedirectToAction("Index", "Home");
}
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
11 oct. 2021 à 17:34
Et donc que se passe t il en pas à pas ?
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 17:46
Cette méthode async n'a pas d'opérateur 'await' et elle s'exécutera de façon synchrone. Utilisez l'opérateur 'await' pour attendre les appels d'API non bloquants ou 'await Task.Run(…)' pour effectuer un travail utilisant le processeur sur un thread d'arrière-plan. REM.Web
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
Modifié le 11 oct. 2021 à 18:05
Ha et je suppose que ce message d'erreur apparait à cette ligne
return Redirect(returnUrl);
ou celle là
return RedirectToAction("Index", "Home")


Alors tu peux tenter (au petit bonheur la chance) d'utiliser
await Task.Run(()=> Redirect(returnUrl));
(ou l'autre si c'est elle qui plante) mais ça risque de planter plus loin.

Le principal problème me semble t il c'est que le niveau de ce code n'est pas en corrélation avec tes réponses.
Tu postes un code dans le quel le pattern MVVM est correctement implémenté ce qui dénote un bon niveau de l'auteur, mais tu ne sais pas exécuter en pas à pas, ce qui est le B A BA du déboggage et donc tend à faire penser que tu débutes (c'est pas grave on y est tous passé)

Quand tu trouves, tu ne vas pas plus loin que la méthode X, sans aller voir ce qui se cache dans Y, puis Z etc... ce qui, là encore, incite à penser que tu débutes.

Et quand on te pousse à gratter un peu, on tombe sur un problème de multithreading, que tu copies colles sans explications ni tentative de résolution.

Bref ça donne l'image que tu es dépassé par ce code. Là encore ce n'est pas grave, mais ce qui l'est un peu c'est que cette information est primordiale pour essayer de t'aider correctement. Et le contexte aussi
  • par exemple, tu l'as trouvé sur le web, tu l'as copier sans trop chercher à comprendre et ça ne marche pas.
  • Ou encore, tu es en stage, et on t'a donné ça sans même chercher à savoir si c'est à ta portée...
  • ou encore autre chose.


Bref, si await task.run ne marche pas, il va nous falloir plus d'informations, un peu sur toi (ton niveau), l'origine de ce code, le contexte d'utilisation. Il faudra plus de code et le contenu des variables quand ça ne marche pas.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 18:22
Merci de me répondre vous êtes très gentil,
oui je suis débutant en asp.net et c# et je cherche toujours sur internet les codes et j'essaye de les comprendre et j'apprend toujours de ces problèmes.
j'espère que c'est une bonne méthode d'apprentissage.
Merci, je suis entrai d'essayer votre solution
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
Modifié le 11 oct. 2021 à 18:31
j'espère que c'est une bonne méthode d'apprentissage.
pas vraiment.

Ce qu'il faudrait faire, c'est d'abord apprendre correctement les bases (y compris le déboggage). Ici tu as un bon cours gratuit de C# (en winform) https://tahe.developpez.com/dotnet/csharp/ ne néglige aucun chapitre, même si de prime abord ça te parait simple et acquis, tu pourrais y découvrir un concept important qui t'avait échappé (je parle en connaissance de cause).
Je n'ai pas de bon cours d'ASP à te proposer parce que je n'en ai jamais fait.

Quand tu auras bien suivi le cours de Tahé, tu pourras aller lire celui de fdorin sur les pool de threads, je te préviens ça va piquer beaucoup plus, pourtant c'est ton problème du jour https://fdorin.developpez.com/tutoriels/csharp/threadpool/part1/

Et puis, il y a celui-ci sur les outils de deboggage https://docs.microsoft.com/fr-fr/visualstudio/debugger/debugger-feature-tour?view=vs-2019
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 18:35
Merci bcp,
la solution n'a pas marché, je dois chercher une autre solution, car la classe ne fait pas la comparaison
merci
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
11 oct. 2021 à 19:05
Quelle comparaison ?
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
11 oct. 2021 à 19:20
Pour s'identifier j'ai configuré le web.config avec userSection avec login et mot de passe. Donc pour se connecter il faut voir si login et mdp entrés sont les mêmes que dans le fichier web.config. donc j'ai fais tous mais toujours ne connecte pas
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
11 oct. 2021 à 20:31
Que ça ne marche pas, j’ai compris, d’ailleurs le simple fait que tu viennes sur un forum suffit à le savoir.

Mais, au titre de me répéter, pour essayer de t’aider il faut que tu donnes des infos concrètes.
Si tu parles de comparaison, on peut supposer que tu as vu un comportement anormal, et comme je t’ai proposé un tuto sur l’utilisation des outils de déboggage pour notamment vérifier si le contenu des variables est celui que tu attends ou non.

Donc quand je te demande quelle comparaison, j’attends toutes ces informations
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
15 oct. 2021 à 13:30
Bonjour Whismeril,
Pouvez vous m'aider a propos du code d'authentification j'arrive pas a authentifier depuis le fichier web.config
Merci d'avance
0
Whismeril Messages postés 18011 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 décembre 2022 618
16 oct. 2021 à 06:22
Oui, je veux bien essayé de t'aider.
Mais je ne suis pas magicien.

J'ai besoin que tu me me dises, précisément quelle comparaison ne se fait pas et quel est le contenu des variables dans cette comparaison
0
hotmenthe Messages postés 17 Date d'inscription dimanche 13 juin 2021 Statut Membre Dernière intervention 16 octobre 2021
16 oct. 2021 à 10:54
Merci bcp Whismeril vraiment vous êtes très gentil,
voici le code du fichier web.config qui contient la liste des utilisateurs ( monta et karim):
 <section name="userSection" type="REM.Web.Configuration.UserSection"/>
  </configSections>
  <userSection>
    <users>
      <user name="monta" login="monta" pwd="0000"/>
      <user name="karim" login="karim" pwd="0000"/>
    </users>
  </userSection>

et voici le code c# du bouton qui faire authentifier::
        public async Task<ActionResult> LoginAsync(LoginViewModel model, string returnUrl)
         {
             if (!ModelState.IsValid)
              {
                  return View(model);
              }
var result = MvcApplication.Users.Any(u => u.Login == model.login && u.Password == model.Password);
           if (result)
              {                
                 await Task.Run(() => Redirect(returnUrl));
             }
              return View(model);
     }
0