Authentification ASP.NET avec composant Login [Résolu]

morpheus81fr 23 Messages postés mercredi 7 avril 2004Date d'inscription 28 juin 2010 Dernière intervention - 29 nov. 2008 à 11:53 - Dernière réponse :  arig1
- 22 avril 2013 à 16:52
Bonjour,

Dans le cadre de la création d'un site web sécurisé en ASP.NET avec VB.NET, je souhaite que les internautes se connectent sur la première page de mon site. J'utilise donc le composant "login".

Mon problème :
-----------------

Lorsque je saisis un login et/ou un mot de passe erronné, tout se passe correctement (message d'erreur et réctualisation de la page en cours).

Lorsque je saisi le bon login et le bon mot de passe, ma page se réactualise avec aucun message alors qu'elle devrait réorienter l'internaute vers une seconde page....

J'ai bien sur vérifié dans les propriétés de mon composant "login" que la bonne page de redirection était définie.

Mon code :
------------

Protected
Sub Login_Authenticate(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.AuthenticateEventArgs)
Handles Login.Authenticate

   If Authentifier(Login.UserName, Login.Password)
Then      FormsAuthentication.RedirectFromLoginPage(Login.UserName,

False)

   End
If

End
Sub

Private
Function Authentifier(
ByVal strUtilisateur
As
String,
ByVal strMotDePasse
As
String)
As
Boolean

   Dim bOk
As
Boolean =
False   ' Cryptage du mot de passe

   strMotDePasse = FormsAuthentication.HashPasswordForStoringInConfigFile(strMotDePasse,

"MD5")

   ' Définition de la requête à exécuter

   Dim Verif_Login
As
Integer = BDD.NbEnr(
"SELECT count(Login) FROM Cpt_Joueur WHERE (login='" & strUtilisateur & _

      "' and motdepasse='" & strMotDePasse &
"')")

   Select
Case Verif_Login

         CaseIs > 0               bOk True               Login.FailureText

"çà marche !"

         CaseIs 0               bOk

False               Login.FailureText =

"L: " & strUtilisateur &
" M: " & strMotDePasse

         CaseIs < 0               bOk False               Login.FailureText

"Erreur base de donnees!"

   End
Select   

   Return bOk

End
Function

Merci de votre aide,
Afficher la suite 

10 réponses

Répondre au sujet
yassinebennani 249 Messages postés samedi 13 octobre 2007Date d'inscription 2 mai 2014 Dernière intervention - 30 nov. 2008 à 23:26
+3
Utile
Bonjour

La fonction est correct dans le cas où l'utilisateur arrive à ta page login en tappant l'url d'une autre page par ce que la méthode RedirectFromLogin vérifie le paramètre passé en querystring qui est ReturnUrl qui redirige l'utilisateur à la page qui a demandé avant l'authentification mais si l'utilisateur tape directement l'url de la page login dans ce cas la méthode ne fonctionnera pas alors tu peux forcer la redirection, exemple :

string

url =
base.Request.QueryString[
"ReturnUrl"];

if (!
String.IsNullOrEmpty(url)){

FormsAuthentication.RedirectFromLoginPage(Login.UserName, False)}

else{

Response.Redirect(
"Accueil.aspx");}

Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de yassinebennani
morpheus81fr 23 Messages postés mercredi 7 avril 2004Date d'inscription 28 juin 2010 Dernière intervention - 2 déc. 2008 à 16:32
0
Utile
Super, merci pour ces explications. J'y voies plus clair et çà marche !!!!!!
Commenter la réponse de morpheus81fr
morpheus81fr 23 Messages postés mercredi 7 avril 2004Date d'inscription 28 juin 2010 Dernière intervention - 26 mars 2009 à 15:38
0
Utile
maintenant que j'arrive à faire un site web sécurisé via web.config et le composant "login asp.net", je voudrais récupérer les infos de l'utilisateur logué.

Dans un premier temps, j'ai créé une variable de session pour mémoriser les infos mais j'ai découvert page.user.identity.name.

Le problème que je rencontre est que je me dirige bien vers la page "accueil.aspx" une fois l'identité vérifiée mais page.user.identity.name reste désespérément vide !!!!!

ASP.NET semble considérer que mon identité n'est pas authentifiée.

Ce dispositif fonctionne avec une requete vers une base de donnée ou uniquement avec un fichier XML ou en utilisant les "credential" ?
Commenter la réponse de morpheus81fr
hardzip 6 Messages postés vendredi 1 février 2008Date d'inscription 11 juin 2009 Dernière intervention - 28 mai 2009 à 16:24
0
Utile
Bonjour morpheu81fr
Pourrais je avoir un peu de ton code intervenant dans la gestion du login car je fais à peu pres la meme chose et ça va bientot faire une semaine que je n'arrive à rien bien (qu'ayant fait moulte recherche)!
Si je pouvais avoir le code gerant le login et surtout la partie ce trouvant ds le fichier web.config ça ne serait pas de refus!

Merci d'avance.
Commenter la réponse de hardzip
morpheus81fr 23 Messages postés mercredi 7 avril 2004Date d'inscription 28 juin 2010 Dernière intervention - 29 mai 2009 à 02:33
0
Utile
le plus simple est que tu postes ton web.config et que tu me dises ce que tu veux faire. Je pourrais sans doute t'aider ...
Commenter la réponse de morpheus81fr
sara20059 6 Messages postés vendredi 9 mars 2007Date d'inscription 27 juin 2010 Dernière intervention - 25 juin 2010 à 02:12
0
Utile
Bonsoir,
S'il vous plait j'ai une question.
Je veux utiliser une classe connexion puisque je veux faire une authentification par code.Le probleme c'est que quand j'instancie la classe Connexion,cette classe n'est pas reconnue!!
Merci
Commenter la réponse de sara20059
morpheus81fr 23 Messages postés mercredi 7 avril 2004Date d'inscription 28 juin 2010 Dernière intervention - 27 juin 2010 à 10:26
0
Utile
Peux tu donner des détails ?

que veux dire "pas reconnue" ??? pas instanciée ? message d'erreur ?
Commenter la réponse de morpheus81fr
sara20059 6 Messages postés vendredi 9 mars 2007Date d'inscription 27 juin 2010 Dernière intervention - 27 juin 2010 à 23:55
0
Utile
Merciii bcp c'est resolue,j'ai utilisé une classe connexion dans un site en asp.net et à chaque fois je veux faire des requetes j'appelle seulement la fonction dans la classe connexion
Commenter la réponse de sara20059
morpheus81fr 23 Messages postés mercredi 7 avril 2004Date d'inscription 28 juin 2010 Dernière intervention - 28 juin 2010 à 10:59
0
Utile
Oui tout à fait. L'instanciation d'une classe ne doit se faire qu'une seule fois. Ensuite tu appelles la fonction à l'intérieur de ta classe autant de fois que tu veux ....
Commenter la réponse de morpheus81fr
0
Utile
Bonsoir,
S'il vous plait j'ai une question.
comment quand on fait la connexion (login et password) nous le ramène à une autre page mais il ne faut pas retourner à l'ancienne page par flèche de retour en haut? comment faire ça dans mon code du session de sécurisation
svp aidé moi à faire ce code
Commenter la réponse de arig1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.