Outre la configuration d'authentification dans le fichier web.config , vous pouvez également utiliser le Global.asax Session_Start (...) méthode pour vérifier les utilisateurs nouvelle session, assurez-vous aussi réviser la cookie de session, si elle est nulle vous devez rediriger l'utilisateur vers la page de connexion:
public class Global:System.Web.HttpApplication
{
protected void Session_Start(object sender, EventArgs e)
{
if(Session.IsNewSession)
{
if (Request.Headers["Cookie"] != null)
{
if (Request.Headers["Cookie"].IndexOf("Web_App_Login_Cookie", StringComparison.OrdinalIgnoreCase) >= 0)
{
FormsAuthentication.SignOut();
Context.User = null;
Response.Redirect("~/logOn.aspx");
}
}
}
}
}
en outre, si vous stockez des informations de session utilisateur dans une classe, vous pouvez remplacer le OnInit (...) méthode dans certains classe de base pour s'assurer que l'utilisateur existe déjà dans certaines collections de sessions personnalisées, si n ot encore une fois, vous devriez rediriger vers la page de connexion.
public class SessionBasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (HttpContext.Current != null && HttpContext.Current.Session != null)
{
UserSession = HttpContext.Current.GetUserSession();
if (UserSession != null)
{
LoggedUserInfo = HttpContext.Current.GetLoggedUserInfo();
HttpContext.Current.UpdateLoggedUserInfo();
}
else { Response.Redirect("~/logOn.aspx", true); }
}
}
}
+1 pour me battre dessus. Vous pouvez améliorer votre réponse en ajoutant le lien à la propriété loginUrl –
en cours, il indique sur l'autorisation. –
kalls