Comment mettre en œuvre les contrôles d'autorisation dans ASP.NET MVC basé sur les données de Session?

Ce sera mon premier ASP.NET application MVC avec l'authentification par formulaires, alors j'essaie de m'assurer de ne rien manquer. Le scénario est le suivant: Public /Zones Sécurisées.

Au sein de l'espace privé, il est encore limitée à des domaines spécifiques ou de l'utilisateur. Ces "Régions" sont définis par des personnalisations à la superficie de base qui sont personnalisés par groupe d'utilisateurs.

Ainsi, par exemple, un utilisateur peut obtenir l'url /Area/Controller/Action. Ils auraient besoin d'avoir la permission de la zone protégée, ou ils sont redirigés vers le signe-dans la vue.

J'ai lu sur le AuthorizeAttribute mais je ne suis pas sûr de savoir comment/où je devrais être en train de faire ces vérifications de base. Ma première intuition serait de stocker un objet utilisateur dans la session, après avoir réussi à vous connecter avec l'IP de l'utilisateur et les détails à propos de ce qu'ils ont accès à l'etc.

Le contrôle des autorisations pour chaque garantis contrôleur de l'appel serait de vérifier qu'un utilisateur valide de l'objet existe dans la session, l'IPs toujours correspondre, et l'utilisateur a accès à la zone spécifique. Est-il évident trous de cette installation?

Edit: Où/comment puis-je mettre en œuvre ces contrôles, de sorte que quand un contrôleur est taggés avec [Autoriser], il va effectuer ceux de la session de l'objet de contrôles?

Tous les pointeurs ou les suggestions seront très appréciés. Merci.

OriginalL'auteur Kelsey | 2009-07-20