分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

.net core MVC Filters 过滤器的使用

发布时间:2023-09-06 02:27责任编辑:沈小雨关键词:MVC

一、过滤器的优级依次介绍如下(逐次递减):

  Authorization Filter ->  Resource Filter -> Acton Filter -> Exception Filter -> Result Filter

  1、Authorization Filter  (权限过滤器)

 ???/// <summary> ???/// 权限过滤器 ???/// </summary> ???public class GlobalAuthorizationFilter : Attribute, IAuthorizationFilter ???{ ???????/// <summary> ???????/// 优化权最高的过滤器 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnAuthorization(AuthorizationFilterContext context) ???????{ ???????????//context.Result = new ObjectResult("IAuthorizationFilter 过滤输出"); ???????????Console.WriteLine("IAuthorizationFilter 过滤输出"); ???????} ???}

  2、Resource Filter (资源过滤器)

 ???/// <summary> ???/// 资源过滤器 ???/// </summary> ???public class GlobalResourceFilter : IResourceFilter ???{ ???????/// <summary> ???????/// 获取资源后拦截 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnResourceExecuted(ResourceExecutedContext context) ???????{ ???????????Console.WriteLine("IResourceFilter OnResourceExecuted 输出"); ???????} ???????/// <summary> ???????/// 获取资源前拦截 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnResourceExecuting(ResourceExecutingContext context) ???????{ ???????????Console.WriteLine("IResourceFilter OnResourceExecuting 输出"); ???????} ???}

  3、Acton Filter

 ???/// <summary> ???/// Acion过滤器 ???/// </summary> ???public class GlobalActonFilter : Attribute, IActionFilter ???{ ???????/// <summary> ???????/// Acion 执行后拦截 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnActionExecuted(ActionExecutedContext context) ???????{ ???????????Console.WriteLine("IActionFilter OnActionExecuted Acion 执行后拦截"); ???????} ???????/// <summary> ???????/// Acion 执行前拦截 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnActionExecuting(ActionExecutingContext context) ???????{ ???????????Console.WriteLine("IActionFilter OnActionExecuting Acion 执行前拦截"); ???????} ???}

  4、Exception Filter

 ???/// <summary> ???/// 异常全局过滤器 ???/// </summary> ???public class GlobalExceptionFilter : IExceptionFilter ???{ ???????/// <summary> ???????/// 异常处理 ???????/// </summary> ???????/// <param name="context">异常上下文</param> ???????public void OnException(ExceptionContext context) ???????{ ???????????Console.WriteLine(context.Exception); ???????????//如果这里设为false,就表示告诉MVC框架,我没有处理这个错误。然后让它跳转到自己定义的错误页(设为true的话,就表示告诉MVC框架,异常我已经处理了。不需要在跳转到错误页了,也部会抛出黄页了) ???????????context.ExceptionHandled = false; ???????} ???}

  5、Result Filter

 ???/// <summary> ???/// 结果过滤器 ???/// </summary> ???public class GlobalResultFilter : IResultFilter ???{ ???????/// <summary> ???????/// 动作结果执行后 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnResultExecuted(ResultExecutedContext context) ???????{ ???????????Console.WriteLine("IResultFilter OnResultExecuted Acion 动作结果执行后"); ???????} ???????/// <summary> ???????/// 动作结果执行前 ???????/// </summary> ???????/// <param name="context"></param> ???????public void OnResultExecuting(ResultExecutingContext context) ???????{ ???????????Console.WriteLine("IResultFilter OnResultExecuting Acion 动作结果执行前"); ???????} ???}

.net core MVC Filters 过滤器的使用

原文地址:https://www.cnblogs.com/intotf/p/10189665.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved