2010-12-15 180 views
0

J'ai une table dans ma base de données SQL2008 pour les utilisateurs et une autre pour les rôles, puis la table de pontage UserRoles. Je suis au point où je dois RoleProvider pour travailler et ai décoré certaines de mes actions avec [Authorize (Roles = "Administrator, Developer")]MVC2 Autoriser les rôles de SQL

Je construis réellement la navigation sur mon site par utilisateur de sorte que le RoleProvider est juste pour empêcher un utilisateur de niveau inférieur d'obtenir l'URL de son ami Admin et d'aller à une page à laquelle il n'est pas censé.

Nous construisons la navigation du site sur une base par utilisateur et avons un mappage entre l'utilisateur, son rôle et les pages que le rôle dans lequel il est autorisé à voir. Je veux juste savoir s'il y a un moyen de changer les [(rôles = Authorize « »)] pour obtenir la liste des rôles avec l'autorisation de cette action dynamique de ma base de données? De cette façon, je ne dois pas décorer toutes les actions que j'ai, il sera juste tiré de la DB comme par magie.

Un exemple simple sera apprécié, merci. Jack

Répondre

0

J'ai fondamentalement écrit ma propre classe CustomAuthorize qui hérite de AuthorizeAttribute et dans l'OnAuthorization j'ai fait la recherche d'accès. Si l'utilisateur n'a pas accès, je fais essentiellement: filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult ("/ accessDenied"); Fonctionne, et je décore mes méthodes avec: [CustomAuthorize]