2010-01-15 6 views
0

Voici la situation: la plupart de cette application ASP.NET Web Forms (qui utilise une page maître unique pour toutes les pages) avec l'authentification par formulaires a un délai d'expiration de session standard, mais il existe des modes dans lesquels stocker un cookie codé. lie l'utilisateur à son compte.Où puis-je ré-authentifier un utilisateur dans le cycle de vie des formulaires Web?

Je souhaite vérifier manuellement le cycle de vie de la page pour le cookie, et si certaines conditions sont remplies, rétablit manuellement le ticket/session d'authentification de l'utilisateur.

Quel est le meilleur endroit pour faire cela? Page maître Page_Init? Global.asax BeginRequest?

Répondre

1

Un HttpModule serait le meilleur endroit.

BeginRequest est probablement le bon endroit (soit dans Global.asax ou dans un HttpModule personnalisé), puisque de votre description, il semble qu'il devrait fonctionner avant AuthenticateRequest, qui est l'événement suivant dans le cycle de vie.

Si vous attendez Page_Init, ou tout autre événement associé à la page, l'étape d'authentification dans le cycle de vie est déjà arrivée.

+0

BeginRequest est l'endroit le plus facile. Masterpage.Page_Init ne s'applique pas aux pages qui n'utilisent pas cette page maître, par exemple les fenêtres contextuelles ou les appels AJAX. – AUSteve