.Net Web Api过滤器小记

本文介绍了Web Api过滤器的面向切面编程思想,它用于添加额外逻辑如身份验证、数据验证和异常处理。过滤器是应用于Controller Action的Attribute,自定义过滤器可通过特定接口和类实现。执行顺序为:全局过滤器先于局部过滤器,同一类型过滤器按添加顺序执行,可在任一过滤器中返回响应以短路后续操作。要使过滤器全局生效,可在WebApiConfig.cs的Register函数中配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Web Api的过滤器(Filter)使用的面向切面(Aspect Oriented Programming)的编程思想,该机制使得编程人员可以很方便的向Web Api的主逻辑中添加一些额外的逻辑,比如身份验证预授权、数据模型验证以及格式化异常处理等。

在实际编程实现中,过滤器其实就是作用于Web Api Controller的一个或多个Action之上的Attribute。以下是比较常用的可供实现自定义过滤器的接口和类。

接口简介
IActionFilterActionFilterAttribute向Action运行前后添加逻辑;其OnActionExecuting函数作用于Action运行前,OnActionExecuted函数作用于Action运行后
IAuthenticationFilter 在Action运行前对请求方进行身份验证
IAuthorizationFilterAuthorizationFilterAttribute在Action运行前对请求方进行权限验证
IExceptionFilterExceptionFilterAttributeAction运行结束后进行异常捕获及处理

这些不同类型的过滤器的执行顺序如下图所示,用户可跟据业务逻辑需要在任意一个过滤函数中返回response,从而实现短路操作。对于用一类型的多个过滤器而言,其执行顺序取决于其被的添加顺序,且全局过滤器先于局部过滤器被执行。

如果希望做开发的过滤器作用于应用程序的所有Action之上,用户可以直接通过在WebApiConfig.cs中的Register函数中添加如下代码来实现。

config.Filters.Add(new YourFilter());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值