当前位置: 首页 > news >正文

宁波建网站公司品牌提升方案

宁波建网站公司,品牌提升方案,徐州建设工程监理,小程序游戏搭建Asp.NET Core 中的过滤器(Filter)和拦截器(Interceptor)是两个不同的概念,但它们在某些方面有相似之处,也有明显的区别。 🔑过滤器(Filter) 过滤器是Asp.NET Core中用于…

Asp.NET Core 中的过滤器(Filter)和拦截器(Interceptor)是两个不同的概念,但它们在某些方面有相似之处,也有明显的区别。

🔑过滤器(Filter)

过滤器是Asp.NET Core中用于在  Pipeline 中的特定阶段执行代码的一种机制。它可以用于处理请求和响应,例如:日志记录、身份验证、异常处理 等。

ASP.NET Core提供了多种内置的过滤器类型:

  🔸认证过滤器(Authentication Filter)

  🔸授权过滤器(Authorization Filter)

  🔸响应缓存过滤器(Response Cache Filter)

  🔸异常过滤器(Exception Filter)

  🔸结果过滤器(Result Filter)

🚫拦截器(Interceptor)

拦截器通常是在 AOP(面向切面编程)框架中使用的,如:Castle Windsor, Spring.NET等,它允许你在不修改原始代码的情况下,添加额外的行为。

在Asp.NET Core中,拦截器通常是通过 依赖注入 和 中间件 来模拟的。

两者区别

  1. 应用场景不同:过滤器 主要应用于 MVC 和 Web API 控制器中,而 拦截器 可以应用在任何对象或者数据

  2. 实现方式不同:过滤器 通过 继承 特定的基类实现,而 拦截器 通常通过 动态代理 实现。

  3. 控制粒度不同:过滤器 控制的 粒度更小,像是 Action,而 拦截器 可以对 方法级别 的行为实施拦截。

  4. 性能差异:由于过滤器是在.NET Core的 Pipeline 中实现的,它的性能通常 优于拦截器

示例代码

过滤器(Authentication Filter)

public class MyCustomAuthFilter : Attribute, IAuthenticationFilter
{public Task AuthenticateAsync(AuthenticationContext context){// 自定义认证逻辑return Task.CompletedTask;}public Task ChallengeAsync(AuthenticationChallengeContext context){// 当需要challenge时执行return Task.CompletedTask;}public Task ForbidAsync(AuthenticationForbidContext context){// 当需要forbid时执行return Task.CompletedTask;}
}[MyCustomAuthFilter]
public IActionResult Index()
{return View();
}

拦截器(依赖注入和中间件模拟)

// 定义一个拦截器接口
public interface IMyInterceptor
{Task InvokeAsync(InvocationContext context);
}// 实现拦截器
public class MyInterceptor : IMyInterceptor
{public async Task InvokeAsync(InvocationContext context){// 在调用方法之前执行额外的行为await Next(context); // 调用下一个拦截器或者原方法// 在调用方法之后执行额外的行为}
}// 在中间件中使用
public class MyCustomMiddleware
{private readonly RequestDelegate _next;public MyCustomMiddleware(RequestDelegate next){_next = next;}public async Task InvokeAsync(HttpContext context, IMyInterceptor interceptor){// 在这里调用拦截器await interceptor.InvokeAsync(/* 传递适当的参数 */);// 调用下一个中间件await _next(context);}
}// 注册中间件
public void Configure(IApplicationBuilder app)
{app.UseMiddleware<MyCustomMiddleware>();
}

  现在能区分二者的职责和关系了吧

http://www.yayakq.cn/news/652187/

相关文章:

  • 网站设计集团优化一个网站
  • 无锡外贸网站制作网站首页效果图怎么设计
  • 的建站网站深圳航空公司
  • 青海建设兵团网站小院离婚协议书正规模板
  • 深圳网站程序开发制作罗湖做网站报价
  • 网站开发项目经理不相关的网站做单项链接可以吗
  • 网站改版的原因有什么网站可以在线做试题
  • 深圳网站设计师培训学校大连开发区网站设计公司
  • 网站规划与建设大作业答案重庆涪陵网站设计公司哪家专业
  • 网站建设费用计入哪个科目网站推广代运营
  • 携程网站建设江门建网站
  • 做网站需要什么备案云县网站建设 云县网
  • 怎么做自我介绍网站网站与微信内容建设与运维总结
  • 微信网站开发设计在哪个网站可以查做项目中标的
  • 建立网站ppt网页网站怎么做的
  • 沈阳设计网站公司中小学 网站建设 通知
  • 网站地图 制作工具高校网站建设要点
  • wordpress增加网址大全深圳网站设计专家乐云seo
  • 做响应式网站费用企业网站设计解决方案
  • 娱乐新闻做的好的网站做网站的收益来源
  • 福建大舟建设集团有限公司 网站wordpress提醒用法
  • 网站推广沈阳互联网经营许可证
  • 超酷个人网站六灶网站建设
  • 软文网站名称h5科技 网站
  • 微网站建设合同网站根目录文件
  • 网站建设期末实践报告wordpress前台编辑
  • 重庆石桥铺网站建设公司乌班图系统做网站
  • 什么语言做网站好网站建立服务
  • 大淘客构建自己的网站wordpress 默认上传路径
  • 网站案例网站建设线上销售怎么做推广