Question

I have a table in my SQL2008 DB for Users and one for Roles and then the UserRoles bridging table. I am at the point where I have to RoleProvider to work and have decorated some of my Actions with [Authorize(Roles = "Administrator,Developer")]

I actually build the navigation on my site per user so the RoleProvider is just to prevent a lower level user from getting the URL from his Admin buddy and going to a page that he is not supposed to.

We build the site navigation on a per user base and have a mapping between the user, his role and the pages that the role he is in is allowed to see. I just want to know if there is any way to change the [Authorize(Roles = "")] to get the list of roles with permission to that action dynamically from my database? That way I do not have to go decorate all actions that I have, it will just be pulled from the DB as if by magic.

A simple example will be appreciated, thank you. Jack

Was it helpful?

Solution

I basically wrote my own CustomAuthorize class that inherits from AuthorizeAttribute and in the OnAuthorization I did the look-up for access. If the user does not have access I basically do: filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult("/accessDenied");

Works, and I decorate my methods with: [CustomAuthorize]

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top