Bonjour à tous,
J'utilise la méthode FormsAuthentication pour mes connexion sur mon site web ASP.net C#. Ca fonctionne parfaitement lors de l'exécution en local avec le serveur intégré de Visual Web Developper 2008.
Mais dès que je le passe en ligne, cela plante. Je m'explique :
Dans mon web.config j'ai mis :
Sur Default.aspx, où l'utilisateur s'identifie, lors du clic sur le bouton "Connexion" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <authentication mode="Forms"> <forms name="CDV" loginUrl="Default.aspx" protection="All" defaultUrl="/" timeout="30"> </forms> </authentication>
Je confirme que la procédure codes.UTILISATEUR_ID fonctionne bien, j'ai vérifié sa valeur en sortie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (codes.UTILISATEUR_Connexion_Autorisee(Connexion.UserName, Connexion.Password)) { FormsAuthentication.SetAuthCookie(codes.UTILISATEUR_ID(Connexion.UserName, Connexion.Password), Connexion.RememberMeSet); Response.Redirect("Carnet.aspx"); } else { //Echec }
Ensuite, dans Carnet.aspx, page où est redirigé l'utilisateur après connexion :
Ainsi, lorsque je me connecte en local, ca fonctionne. Mais dès que je passe le site en ligne, ca plante, et après connexion, je suis redirigé automatiquement sur Default.aspx?ReturnUrl=%2fCarnet.aspx
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 public string id_user = "-1"; protected void Page_Load(object sender, EventArgs e) { string cookieName = FormsAuthentication.FormsCookieName; HttpCookie authCookie = Request.Cookies[cookieName]; if (authCookie != null) { // L'utilisateur est déjà connecté id_user = FormsAuthentication.Decrypt(authCookie.Value).Name; } else { // L'utilisateur n'est pas connecté FormsAuthentication.SignOut(); FormsAuthentication.RedirectToLoginPage(); } }
J'en déduis donc qu'il n'a pas réussi à lire le cookie dans la page Carnet.aspx, et du coup il effectue le
Ou alors, il plante lors de l'écriture du cookie dans Default.aspx :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // L'utilisateur n'est pas connecté FormsAuthentication.SignOut(); FormsAuthentication.RedirectToLoginPage();
Ma question : pourquoi ça ? Alors que ca fonctionne en local... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part FormsAuthentication.SetAuthCookie(codes.UTILISATEUR_ID(Connexion.UserName, Connexion.Password), Connexion.RememberMeSet);
Merci d'avance de votre aide !![]()
Partager