J'ai une application asp.net 4.0 qui utilise l'authentification par formulaires définie sur un délai d'attente de 45 minutes. Je voudrais rediriger l'utilisateur vers une page de délai d'expiration lorsque la session a expiré. Quelqu'un peut-il me dire comment faire cela? Je cours. Net 4.0.Session_End dans Global.asax.cs ne se déclenche pas à l'aide de l'authentification par formulaire
web.config a:
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/Login.aspx"
defaultUrl="~/Default.aspx" protection="All" timeout="45"
requireSSL="false">
</forms>
</authentication>
fichier Global.asax.cs a:
void Session_End(object sender, EventArgs e)
{
Response.Redirect("~/Timeout.aspx");
}
la redirection peut être un rafraîchissement même, ou une sorte d'appel ajax qui vérifie les données de session. –
Vous avez raison. Vous pensez que je pourrais utiliser quelque chose comme jQuery idleTimer (http://paulirish.com/2009/jquery-idletimer-plugin/), le régler à 45 minutes comme vous l'avez fait avec (window.setTimeout) et rediriger? Vous pensez que cela pourrait bien fonctionner? Je peux attendre 45 minutes d'inactivité et forcer une déconnexion/fin de session/redirection. – capdragon
@krefftc: Je n'ai pas beaucoup lu sur la page que vous avez liée, en raison de ses animations très saccadées et ennuyeuses, mais je pense que le minuteur inactif essaie de savoir si l'utilisateur est actif dans le navigateur ou non. Le timeout de la session ne se soucie pas du tout de ce que l'utilisateur fait dans le navigateur à moins que le navigateur ne récupère quelque chose du serveur, donc ce n'est pas du tout affecté par cela. Ainsi, 'setTimeout' correspondrait mieux à l'expiration de la session sur le serveur. – Guffa