asp.net mvc5中增加了一種過濾器類型叫過濾器重寫,這種過濾器類型可以在操作或者控制器上忽略更高層次上設置的過濾器類型,它可以重寫五種基本的過濾器介面類型:IAuthenticationFilter、IAuthorizationFilter、IActionFilter、IResultFilt ...
asp.net mvc5中增加了一種過濾器類型叫過濾器重寫,這種過濾器類型可以在操作或者控制器上忽略更高層次上設置的過濾器類型,它可以重寫五種基本的過濾器介面類型:IAuthenticationFilter、IAuthorizationFilter、IActionFilter、IResultFilter、IExceptionFilter,而不是它們具體的實現類。它必須繼承IOverrideFilter介面,實現介面中的FiltersToOverride屬性,指明要重寫的過濾器類型。
如下OverrideAllExceptionFilterAttribute特性重寫了異常過濾器類型,那麼如果把該過濾器放到控制器上則會忽略掉所有的全局異常過濾器,而如果把該過濾器放到操作上,則會忽略其控制器和全局中設置的所有異常過濾器。
另外,在MVC5.1中,對每一種基本過濾器類型都包含了對應的過濾器重寫:OverrideAuthenticationAttribute、OverrideAuthorizationAttribute、OverrideActionFiltersAttribute、OverrideResultFiltersAttribute、OverrideExceptionFiltersAttribute,因此不必自己去實現IOverrideFilter介面,寫相應的過濾器重寫類型。
- 重點回顧
- 繼承FilterAttribute,IOverrideFilter
- 重寫過濾器返回五種基本過濾器介面,而不返回具體的類
- 應用時忽略掉更高層次上設置的對應的過濾器類型