I'm trying to get a handle on all the various techniques of implementing custom authorization within a traditional ASP.NET application - it seems that the preferred approach is to use the Membership API by creating a custom provider model.
I'm interested in implementing a custom roles authorization model based on a combination of roles and individual permissions (a role is comprised of permissions and a user can have multiple roles or specific permissions which override whatever permissions the roles might have)
What is the advantage or disadvantage of creating a full-fledged Roles provider vs implementing a custom principal object and implementing all the authorization logic in overloads of the IsInRole method? Are custom principals a deprecated technique stemming back to 1.1? In general, when are you supposed to implement a custom principal?
We are using Active Directory as the user store. A third party consulting firm has implemented a TERRIBLE custom roles-based authorization module that contains authorization logic and rules contained in an XML file and passed around in the Session object for each user and does not tie in whatsoever with the ASP.NET infrastructure for authorization.
I'd like to know what the best practice for this would be