Probleme avec l'authentification

[Résolu]
Signaler
Messages postés
87
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 décembre 2008
-
Messages postés
26
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
1 mai 2007
-
Salut
je suis debutant dans le monde de l'asp.net


et voila j'ai un probleme avec l'authentification.
j'ai la page :





default.aspx





void Page_Load(Object sender, EventArgs e){



         if(User.Identity.IsAuthenticated)
         {
             LB_Login.Visible = false ;
             LB_Logout.Visible = true ;
             L_Welcom.Text = "Bonjour : " + User.Identity.Name ;
         }
         else
         {
             LB_Login.Visible = true ;
             LB_Logout.Visible = false ;
             L_Welcom.Text = "Bonjour : Visiteur" ;
         }

}

void LogOut(object sender,EventArgs e){

        FormsAuthentication.SignOut();
        Response.Clear();
}

Label</td>
Se connecter
Se deconnecter

et la page

login.aspx

void B_Envoyer_Click(object sender, EventArgs e){


        if(!Succes_Login(TB_Login.Text,TB_Password.Text))

        {

            L_Message.Text="Erreur de Login et/ou de password";

            L_Message.Visible=true;

        }

        else

        {


            FormsAuthentication.RedirectFromLoginPage(TB_Login.Text,CB_Remember.Checked );

            L_Message.Visible=true;

        }


}

Label

et voila les preblemes que j'arrive pas à resoudre
pour la deconnection LogOut , elle ne marche pas qu'apres 2 cliques.
j'arrive pas à acceder à la page default.aspx si je suis pas connecter, je suis automatiquement redireger vers login.aspx?ReturnUrl=%2fdefault.aspx

 et je une question a propos du web.config: ça ve dire koi les parametre name, path,Url,protection
<forms  name "secure7"  path "/" login Url = "login.aspx"  protection = "All" timeout = "30">
</forms>

Merci bien de votre aide

4 réponses

Messages postés
26
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
1 mai 2007

Salut ^^


 Il est tout à fait normal que tu sois obligé d'appuyer 2 fois sur le bouton "se déconnecter".
En fait, la méthode "Page_Load" est appelée avant "LogOut", il faut donc que tu recliques une seconde fois pour que les controles soient modifiés.


La méthode Response.Clear(); ne fait pas ce que tu veux car il te manque Response.End() derrière ;)
Mais la meilleure solution est de :
- soit modifier les controles dans la méthode "LogOut"
- soit rediriger ta page dans "LogOut" avec Response.Redirect("Default.aspx");


Concernant le web.config :P


Tu as mis une authentification par form, c'est à dire par ton formulaire ASP.NET
Pour garantir cette authentification, ASP.NET utilise un cookie !
D'où les attributs :
path : chemin du cookie
name : nom du cookie
timeout : expiration en minute
loginUrl : url de la page qui permet de s'authentifier
protection : type de protection du cookie (all = cryptage et validation)


Pour répondre à ton dernier problème, tu es redirigé vers login.aspx car tu as mis cette url dans loginUrl.
En fait; si l'utilisateur rentre sur une page où il faut être identifié et qu'il ne l'est pas, il est automatiquement redirigé vers loginUrl.

---------
Clem
Messages postés
26
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
1 mai 2007

Après vérification, il faut faire un Response.Redirect(...), mais tu peux mettrre n'importe quelle autre page à la place de Default.aspx, ca dépent de ce que tu veux faire. Mais voilà le style de chose qu'il faut mettre dedans pour se déconnecter :
FormsAuthentication.SignOut();
Response.Redirect(
"Default.aspx");

Sinon, je n'ai ^pas bien compris ce que tu voulais dire "^^

Pour afficher les infos selon si on est authentifié ou pas, c'est un peu plu compliqué.
Tu devrais aller voir ce tutoriel fait par microsoft, il explique tout bien :
http://www.microsoft.com/france/msdn/aspnet/coach/travaux/premiere_application/atelier5.mspx

PS : Il existe des controles déjà tout fait pour la gestion de l'authentification ;) ( le controle Login par exemple)

---------
Clem
Messages postés
87
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 décembre 2008

Salut
Merci bien pour l'aide
>>Mais la meilleure solution est de :
>>- soit modifier les controles dans la méthode "LogOut"
>>- soit rediriger ta page dans "LogOut" avec Response.Redirect("Default.aspx");
- j'ai ajouter la ligne Response.Redirect("Default.aspx"); dans la methode LogOut mais quant le clique sur se deconnecté je reste sur la mempage (default.aspx)  !!!   .
- comment je peux [modifier les controles dans la méthode "LogOut"].

Merci
Messages postés
87
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
5 décembre 2008

J'ai oublier une chose:
comment faire pour que la page default.aspx (ou n'importe quelle autre page) soit visuelle pour les loggés et les visiteurs, mais avec des blocks differents, par exemple cacher le lien inscrition pour les membre loggés ......