Salut à toutes et à tous,
Sur un site j'ai utilisé le LoginWizard avec le RememberMe.
Sur certains postes (sous XP et IE6), tout se passe pour le mieux, mais sur d'autres (aussi sous XP et avec IE6), si l'option RememberMe est cochée, lorsqu'un utilisateur se connecte, il revient imperturbablement sur le login, alors que sur d'autres postes la redirection se fait bien.
Le problème se produit donc quand le LoginWizard.RememberMeSet est à true dans le FormsAuthentication.RedirectFromLoginPage(LoginWizard.UserName, LoginWizard.RememberMeSet);
Une idée de ce qui pourrait se passer ?
Merci de vos z'avis z'avisés,
Jean-Marc
Voici les codes de ma page de Login :
<%@PageLanguage="C#"MasterPageFile="~/Reno.master"AutoEventWireup="true"CodeFile="Login.aspx.cs"Inherits="Public_Login"Title="Login" %>
<asp:ContentID="Content1"ContentPlaceHolderID="ContentPlaceHolderPages"Runat="Server">
<asp:LoginID="LoginWizard"runat="server"
TitleText="Connexion à l'Intranet"
UserNameLabelText="Login :"
UserNameRequiredErrorMessage="Un login est requis."
PasswordLabelText="Mot de passe :"
PasswordRequiredErrorMessage="Un mot de passe est requis."
LoginButtonText="Se connecter"
PasswordRecoveryText="Mot de passe oublié ?"
RememberMeText="Retenir mes informations de connexion"
FailureText="Votre tentative de connexion a échoué. Réessayez."
PasswordRecoveryUrl="~/Public/EnvoiPass.aspx"
RememberMeSet="True"
CssClass="menuNavigation"
OnAuthenticate="LoginWizard_Authenticate"
DisplayRememberMe="False"
>
</asp:Login>
<asp:LabelID="Label1"runat="server"Font-Size="Small"ForeColor="InfoText"
Width="265px"></asp:Label>
<asp:TextBoxID="Msg"runat="server"BackColor="Transparent"BorderStyle="None"EnableViewState="False"
Height="100%"ReadOnly="True"TextMode="MultiLine"Width="100%"></asp:TextBox>
</asp:Content>
<asp:ContentID="Content2"ContentPlaceHolderID="ContentPlaceHolderSansAjax"Runat="Server">
</asp:Content>
Le CodeBehind :
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Public_Login : System.Web.UI. Page
{
protected void Page_Load( object sender, EventArgs e)
{
#region Récupération du timeout des Froms du web.config et création de la string delai avec ce temps
System.Web.Configuration. AuthenticationSection authSection = (System.Web.Configuration. AuthenticationSection )
ConfigurationManager .GetSection( @"system.web/authentication" );
TimeSpan timeOut = authSection.Forms.Timeout;
string delai = null ;
if (timeOut.Days>0)
{
delai += timeOut.Days.ToString() + " jour" ;
if (timeOut.Days > 1)
{
delai += "s" ;
}
if (timeOut.Hours > 0 && timeOut.Minutes > 0)
{
delai += ", " ;
}
else if (timeOut.Hours > 0 || timeOut.Minutes > 0)
{
delai += " et " ;
}
}
if (timeOut.Hours > 0)
{
delai += timeOut.Hours.ToString() + " heure" ;
if (timeOut.Hours > 1)
{
delai += "s" ;
}
if (timeOut.Minutes > 0)
{
delai += " et " ;
}
}
if (timeOut.Minutes > 0)
{
delai += timeOut.Minutes.ToString() + " minute" ;
if (timeOut.Minutes > 1)
{
delai += "s" ;
}
}
#endregion
Msg.Attributes.Add( "style" , "overflow :hidden" );
if (LoginWizard.DisplayRememberMe)
{
Label1.Text = "L'option \"Retenir mes informations\" permet de ne pas devoir réencoder votre login et votre mot de passe durant" + delai + " après votre dernière manipulation." ;
Label1.Visible = true ;
}
else
{
Label1.Visible = false ;
LoginWizard.RememberMeSet = false ;
}
}
protected void LoginWizard_LoggedIn( object sender, EventArgs e)
{
MembershipUser Utilisateur = Membership .GetUser(LoginWizard.UserName);
Session[ "UserID" ] = Utilisateur.ProviderUserKey.ToString();
}
protected void LoginWizard_Authenticate( object sender, AuthenticateEventArgs e)
{
try
{
if ( Membership .ValidateUser(LoginWizard.UserName, LoginWizard.Password))
{
if (! string .IsNullOrEmpty(Request.QueryString[ "ReturnUrl" ]))
{
FormsAuthentication .RedirectFromLoginPage(LoginWizard.UserName, LoginWizard.RememberMeSet);
}
else
{
FormsAuthentication .SetAuthCookie(LoginWizard.UserName, LoginWizard.RememberMeSet);
}
}
}
catch ( Exception error)
{
LoginWizard.Visible = false ;
Label1.Visible = false ;
Msg.Text = error.Message;
}
}
}