ASP.Net MVC Filters
In
ASP.NET MVC, controllers define action methods that usually have a one-to-one
relationship with possible user interactions, such as clicking a link or
submitting a form. For example, when the user clicks a link, a request is
routed to the designated controller, and the corresponding action method is
called.
Sometimes
you want to perform logic either before an action method is called or after an
action method runs. To support this, ASP.NET MVC provides filters. Filters are
custom classes that provide both a declarative and programmatic means to add
pre-action and post-action behavior to controller action methods.
Asp.Net MVC filters are used to
implement additional logic at the time of code execution.
Types of filters and sequence of
Execution.
1. Authentication
2. Authorization
3. Action
4. Result
5. Exception
Authentication Filters
Authentication
filter runs before any other filter or action method. Authentication confirms
that you are a valid or invalid user. Action filters implements the IAuthenticationFilter
interface.
Authorization Filters
The
AuthorizeAttribute and RequireHttpsAttribute are the examples of Authorization
Filters. Authorization Filters are responsible for checking User Access; these
implement the IAuthorizationFilterinterface in the framework. These filters
used to implement authentication and authorization for controller actions. For
example, the Authorize filter is an example of an Authorization filter.
Action Filters
Action
Filter is an attribute that you can apply to a controller action or an entire
controller. This filter will be called before and after the action starts
executing and after the action has executed.
Action filters implement the IActionFilter interface that have two methods OnActionExecuting andOnActionExecuted. OnActionExecuting runs before the Action and gives an opportunity to cancel the Action call. These filters contain logic that is executed before and after a controller action executes, you can use an action filter, for instance, to modify the view data that a controller action returns.
Action filters implement the IActionFilter interface that have two methods OnActionExecuting andOnActionExecuted. OnActionExecuting runs before the Action and gives an opportunity to cancel the Action call. These filters contain logic that is executed before and after a controller action executes, you can use an action filter, for instance, to modify the view data that a controller action returns.
Result Filters
The
OutputCacheAttribute class is an example of Result Filters. These implement the
IResultFilter interface which like the IActionFilter has OnResultExecuting and
OnResultExecuted. These filters contains logic that is executed before and
after a view result is executed. Like if you want to modify a view result right
before the view is rendered to the browser.
Exception Filters
The
HandleErrorAttribute class is an example of ExceptionFilters. These implement
the IExceptionFilter interface and they execute if there are any unhandled
exceptions thrown during the execution pipeline. These filters can be used as
an exception filter to handle errors raised by either your controller actions
or controller action results.
No comments:
Post a Comment