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 :

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>
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
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
        }
Je confirme que la procédure codes.UTILISATEUR_ID fonctionne bien, j'ai vérifié sa valeur en sortie.

Ensuite, dans Carnet.aspx, page où est redirigé l'utilisateur après connexion :

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();
        }
 
    }
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

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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
            // L'utilisateur n'est pas connecté
            FormsAuthentication.SignOut();
            FormsAuthentication.RedirectToLoginPage();
Ou alors, il plante lors de l'écriture du cookie dans Default.aspx :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FormsAuthentication.SetAuthCookie(codes.UTILISATEUR_ID(Connexion.UserName, Connexion.Password), Connexion.RememberMeSet);
Ma question : pourquoi ça ? Alors que ca fonctionne en local... ?

Merci d'avance de votre aide !