2009-07-04 4 views

Répondre

1

EDIT

Sur la base de votre commentaire, je suggère la manipulation de ce via un contrôleur de base personnalisé que tous vos autres contrôleurs tireraient de. Avoir le contrôleur de base personnalisé remplacer OnActionExecuting et vérifier un état expiré. Si l'état a expiré, supprimez le cookie d'authentification de la réponse (FormsAuthentication.SignOut) et définissez la propriété Result sur le paramètre ActionExecutingContext à HttpUnauthorizedResult. Alternativement, vous pouvez simplement rediriger vers une action Déconnexion.

Vous devez également vous assurer que le délai d'expiration de votre session et le délai d'expiration du cookie d'authentification par formulaires sont les mêmes.

réponse originale pour le contexte laissé

Je ne sais pas exactement ce que vous demandez. Lorsque la session de serveur expire, le ticket d'authentification dans le cookie n'est plus valide. Toute action nécessitant une autorisation (qui requiert une authentification minimale) doit récupérer un HttpUnauthorizedResult, qui redirige par défaut vers la page d'ouverture de session Forms.

Demandez-vous comment expirer la session côté client de sorte que le client fasse quelque chose même en l'absence de demande? Si oui, vous pourriez être intéressé par la façon dont je gère cela via javascript/ajax. Voir mon blog sur client-side session termination au http://farm-fresh-code.blogspot.com.

+0

Dans ce cas, la session sur le service d'état de la session expire donc le cookie du client est toujours valide que je dois expirer – mamu

+0

J'ai mis à jour ma réponse en fonction de votre commentaire. – tvanfosson

0

Je pense que vous voulez effacer l'historique du navigateur après la déconnexion de l'utilisateur.

+1

IMHO la question concerne l'invalidation de la session * côté serveur *. – Boldewyn

Questions connexes