In ASP.NET Core 3 (and version 2, for that matter), we have the following filters:
- Authorization (IAuthorizationFilter and IAsyncAuthorizationFilter): These control whether the user performing the current request has permission to access the specified resource; if not, then the rest of the pipeline is short-circuited and an error message is returned.
- Resource (IResourceFilter and IAsyncResourceFilter): These execute after a request is authorized but before action selection and model binding. These are new to ASP.NET Core.
- Action (IActionFilter and IAsyncActionFilter): These are executed before and after the action method is called.
- Result (IResultFilter and IAsyncResultFilter): These occur before and after the actual execution of an action result (the IActionResult.ExecuteResultAsync method).
- Exception (IExceptionFilter and IAsyncExceptionFilter): These are called when an...