Question

J'ai une table dans mon SQL2008 DB pour les utilisateurs et un pour les rôles, puis les UserRoles table de pontage. Je suis au point où je dois RoleProvider au travail et ont décoré certaines de mes actions avec [(Rôles = Autoriser « Administrateur, développeur »)]

Je fait construire 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 et administrateur d'aller à une page qu'il n'est pas censé.

Nous construisons la navigation sur le site par une base de l'utilisateur et une correspondance entre l'utilisateur, son rôle et les pages que le rôle qu'il est en 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 n'ai pas à décorer toutes les actions que je l'ai, il sera juste tiré de la DB comme par magie.

Un exemple simple, sera apprécié, je vous remercie. Jack

Était-ce utile?

La solution

Je fondamentalement écrit ma propre classe CustomAuthorize héritant de AuthorizeAttribute et dans le OnAuthorization je l'ai fait la consultation pour l'accès. Si l'utilisateur n'a pas accès, je ne essentiellement: filterContext.Result = new HttpUnauthorizedResult (); filterContext.Result = new RedirectResult ( "/ accessDenied");

Travaux et je décore mes méthodes avec: [CustomAuthorize]

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top