2

J'ai une application ASP.Net MVC3. Lorsque l'action LogIn est appelée, j'utilise MembershipProvider pour valider l'utilisateur et FormsAuthentication pour définir le cookie.ASP.Net MVC3 FormsAuthentication événement global connecté

En outre, je reçois quelques informations sur l'utilisateur à partir d'une base de données et le stocker dans la session. Lorsque l'utilisateur visite le site par la suite, il est déjà authentifié via le cookie, et je cherche un endroit où me connecter pour récupérer les informations sur l'utilisateur de la base de données.

Est-ce que HttpApplication.AuthorizeRequest() est le meilleur endroit pour cela? Évidemment, cela est appelé pour chaque requête, donc j'espérais qu'il y avait quelque chose que je pourrais utiliser qui vient d'indiquer que l'utilisateur a été authentifié - soit explicitement après la connexion ou quand ils sont automatiquement authentifiés.

Répondre

1

Plusieurs événements sont déclenchés à chaque requête, HttpApplication.AuthorizeRequest() doit fonctionner.

Pour ne chercher la base de données pour les utilisateurs connectés, vous pouvez vérifier la propriété Name de User.Identity qui ne se prépare une fois que l'utilisateur authentifie:

if(!string.IsEmpty(User.Identity.Name)) 
{ 
//make call to database 
}