2010-02-06 4 views
0

Je voudrais effectuer un traitement supplémentaire chaque fois qu'un utilisateur est déconnecté de l'authentification par formulaire.Puis-je me connecter à un événement de déconnexion d'authentification par formulaire?

Selon this MSDN article il y a une

FormsAuthentication_OnAuthenticate

événement

mais je besoin de quelque chose comme un

"FormsAuthentication_OnSignOut" (qui n'existe pas)

Des idées?

/J

+0

Est-ce que 'Session_End' fournir ce dont vous avez besoin? Forms ne fonctionne pas de la même manière, il vérifie le prochain hit du serveur et dit "hey votre ticket n'est pas valide", donc pas moyen de déclencher un événement comme 'Session_End' (après 20 minutes d'inactivité, ou peu importe) –

+0

Je cherchais un moyen de se connecter explicitement à chaque fois qu'un FormsAuthentication.SignOut() explicite a été appelé. Nous hébergeons quelques applications partageant l'authentification des formulaires entre les serveurs et il serait bon de faire un peu plus de rangement lorsque nous savons que l'utilisateur a choisi de se déconnecter. – JensJ

Répondre

0

Autant que j'ai pu le découvrir il n'y a aucun moyen de faire ce crochet.

Vous devez ajouter du code supplémentaire à l'endroit où vous effectuez FormsAuthentication.Signout().

(Bien sûr, vous pouvez appliquer certaines techniques AOP, mais cela n'a pas été utile dans mon cas)

1

Gardez l'utilisateur signé jusqu'à ce qu'ils signent explicitement - et quand ils cliquent sur le lien de déconnexion utiliser quelque chose comme ce qui suit:

private void OnLogOut (Object sender, EventArgs e) { FormsAuthentication.SignOut(); // traitement supplémentaire ici }