Je sais que cela a été demandé et répondu plusieurs fois auparavant, croyez-moi, j'ai été à travers tous les messages à la recherche d'une solution avant de demander nouveau. Si un utilisateur se connecte à une page, prend une copie de l'URL, se déconnecte puis recopie l'URL dans le navigateur, il peut accéder très brièvement à la page qu'il avait précédemment visitée avant que le navigateur ne redirige vers la connexion page une fois de plus. Pendant cette brève fenêtre, s'ils sont assez rapides avec la souris et peuvent cliquer sur un bouton ou un autre contrôle, ils sont en quelque sorte connectés sur le site, sans poser de questions.ASP.Net Logout ne fonctionne pas comme prévu
J'ai essayé d'inclure la suggestion de code suivante provenant d'un autre thread sur le sujet dans chaque événement Page_Load pour éviter la mise en cache, mais sans succès.
private void ExpirePageCache()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now - new TimeSpan(1, 0, 0));
Response.Cache.SetLastModified(DateTime.Now);
Response.Cache.SetAllowResponseInBrowserHistory(false);
}
code de logout.aspx est comme suit:
protected void Page_Load(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
HttpContext.Current.Session.Clear();
HttpContext.Current.Session.Abandon();
Response.Redirect("~/Account/Login.aspx");
}
devrais-je utiliser Server.Transfer()
au lieu de Response.Redirect()
?
J'ai lu quelque part que je ne suis pas autorisé à effacer l'historique du navigateur par programme, donc je suis un peu bloqué. Quelqu'un at-il des indices s'il vous plaît?