MVC FILTER過濾器(二)
阿新 • • 發佈:2019-02-10
配置文件 summary 錯誤頁 sys 對象 author 添加 自動 over
授權過濾器:
/// <summary> /// 授權過濾器 /// </summary> public class TestAuthorizeAttribute:AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { filterContext.HttpContext.Response.Write("OnAuthorization<br/>");//註釋掉父類方法,因為父類裏的 OnAuthorization 方法會調用ASP.NET的授權驗證機制 //base.OnAuthorization(filterContext); } }
異常過濾器:
public class TestHandleErrorAttribute:HandleErrorAttribute { public override void OnException(ExceptionContext filterContext) { //1.獲取一場對象 Exception ex = filterContext.Exception;//2.記錄一場日誌 //3.重定向友好頁面 filterContext.Result = new RedirectResult("~/err.html"); //4.標記一場已經處理完畢 filterContext.ExceptionHandled = true; base.OnException(filterContext); } }
當然,可以在FilterConfig.cs中進行全局過濾
filters.Add(new TestAuthorizeAttribute()); filters.Add(new TestHandleErrorAttribute());
註:如果自定義錯誤頁面沒有自動跳轉的話
需要去WebConfig配置文件中的<system.web>節點下添加
<customErrors mode="On"></customErrors>
MVC FILTER過濾器(二)