- /// <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>
来源: http://www.bubuko.com/infodetail-2948947.html