2009-07-28 10 views
1

Je développe une application de commerce électronique en utilisant asp.net mvc.ASP.Net MVC - meilleure façon d'identifier un utilisateur qui revient

Après utilisateur connecté avec succès dans le système de l'application tire des données supplémentaires à partir de la base de données (favoris, historique des commandes, panier inachevés etc.)

Quelle est la meilleure façon de tirer que les données en cas si l'utilisateur utilisé me option Mémoriser ?

Je pense à vérifier si l'utilisateur est authentifié et que des données supplémentaires ne sont pas déjà chargées sur la page maître, mais cela ne semble pas être la meilleure solution.

Répondre

1

J'ai une classe d'utilisateurs qui rassemble tous ces bits ensemble. Au démarrage de la session, je vérifie l'authentification, la crée, la remplis et la stocke dans la variable de session. Ensuite, vous pouvez y accéder où vous le souhaitez (j'ai également créé une classe statique Globals qui obtient/jette des objets à partir des variables de session et d'application). Vous pouvez également le faire à chaque chargement de page.

Ce qui précède prend soin des utilisateurs qui reviennent. Mais vous devez également vous souvenir de le créer lors de la connexion, et le détruire lors de la déconnexion (à partir du contrôleur de comptes).

En outre, je suggère que vous pensiez à ce qui doit exactement être stocké de cette manière. La variable de session est idéale pour mettre en cache ces données, mais je ne sais pas si l'historique des commandes doit être mis en cache. Ce n'est généralement accessible que de temps en temps. En fait, même si vous choisissez de ne pas placer la classe dans la session et de la créer à chaque chargement de page, il semble que vous ayez trop d'historique des commandes. (De toute façon vous perdez des ressources - le stocker dans le cache ou la collecte fréquemment.)

James

+0

J'ai légère classe utilisateur que je stocke en session sur l'action de connexion et supprimer la déconnexion. L'historique des commandes n'y est pas stocké mais tiré à la demande. Pouvez-vous donner plus de détails sur la façon dont vous vérifiez l'authentification? –

+0

Oh. En supposant que vous ne fassiez rien de fou (comme le roulement de votre propre authentification), vérifiez HttpContext.Current.User.Identity.IsAuthenticated. Vous pouvez également obtenir le nom d'utilisateur à partir de Identity.Name. –

Questions connexes