Our application is being migrated from WebForms to MVC. We have a different manner to handle with authorizations. A Database View is queried to verify an user authorization. This view returns, according to each user, all menu hierarchy. For example, if the User1 is trying to access a page named SecretList.aspx, a search is applied through the menu hierarchy (saved in HTTP Session after auth) to check the access authorization. If a menu item related with SecretList.aspx exists to that user, then the access is granted.
My question is, how to implement this approach in ASP.NET MVC 3?
I wouldn't like to put Attributes for each Controller Action and I've been read about Route Constraints and Custom Controller.
To Route Constraints, could I access the HTTP Session and retrieve my Menu Hierarchy for Authorization query?
To Custom Controller, which method should I consider overloading? Can I check authorization and redirect to another view, before Controller execute the complete Action code?
Any other better idea?