在開發項目過程中,我們訪問某些接口的時候,經常需要做權限驗證等。而在每個控制器中寫權限驗證就顯得重復冗余,所以我們使用過濾器FilterAttribute來處理一些接口權限、參數驗證的問題。
只需要寫好一個過濾器類,然后在需要的控制器或者接口前面加上就可以很方便是起到驗證的作用。
一、寫一個過濾器類,類名要以FilterAttribute結尾,並且繼承 ActionFilterAttribute
public class UserFilterAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { //業務邏輯 } }
二、在類中重寫 OnActionExecuting 方法並在其中寫好業務邏輯就可以了
三、使用過濾器
在需要過濾的類或者方法前面加特性標志就可以了
四、如果要全局使用,可以在Startup啟動類中添加服務
有兩種方法:
方法一
public void ConfigureServices(IServiceCollection services) { services.AddControllers(s=>s.Filters.Add(typeof(UserFilterAttribute)));
}
方法二
public void ConfigureServices(IServiceCollection services) { services.AddControllers(s=>s.Filters.Add(new UserFilterAttribute())); }