Performing Authorization In Class Libraries Without Coupling Security in ASP.NET Identity
Most of the time it makes sense to perform authorization at the Controller or Web API level in an ASP.NET MVC application using an AuthorizeAttribute on the controller or action. This handles at least 95% of the scenarios but occasionally it makes sense to handle authorization down in a class library or it needs to be handled in code for more complex situations. An example might be an application that allows users to create folders and files that have individual permissions. In this scenario the resource being acted upon must be determined at run-time and therefore we cannot use a static AuthorizeAttribute. So how do we determine permissions on a dynamic resource without coupling security with our application domain. This is a good time to use a custom ClaimsAuthorizationManager . A ClaimsAuthorizationManager will allow a class library to loosely couple authorization in our application domain and configure it at deployment. Here is an example on using the ClaimsAuthorizationMan