webAPI如何实现整体拦截?
查了查资料,都是扩展一个拦截属性,然后在每个方法前边加上这个属性,
比如[AuthFilter] 来实现拦截,
public class AuthFilterAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
protected override void OnActionExecuting(HttpActionContext ctx){
....//处理拦截
}
}
现在我的问题是这样
定义 controller:ApiController 继承ApiController
这个里边有几个变量,比如aaa,关键是有没有办法在拦截中获取这个aaa或者设置aaa,因为我的方法拦截完毕后还需要用到拦截处理过的aaa的值,关键是原来的mvcController有OnActionExecuting这个方法,继承ApiController后没有这个方法了,只能跑到拦截器属性中处理,我靠了,这样我类里边定义的一些方法和属性可能会在拦截器需要用到然后又经过处理,难点是如何获取控制器的这些属性、方法
示例代码如下:
public class TestController:ApiController
{
public string aaa="";
[AuthFilter] //这里开始拦截了------难点是拦截里如何获取到aaa,并能修改aaa的值
public IHttpActionResult(){
//这个地方我要用到拦截中处理过的aaa值
}
}
救命啊!