AspNet WebAPI后端框架消息处理机制(配置属性HttpConfiguration.MessageHandlers)
AspNet WebAPI后端框架消息处理机制(配置属性HttpConfiguration.MessageHandlers)
消息处理程序 (Message Handler) 消息处理程序(Message Handler)接收HTTP请求并返回一个HTTP响应的类。Message Handler继承 HttpMessageHandler 类。HttpConfiguration.MessageHandlers是个消息集合属性,用户可以添加自定义消息。 通常是一系列消息处理程序协同工作,当第一个Message Handler接收HTTP请求,进行一些处理,并将请求提供给下一个Message Handler,系统逐个处理HttpConfiguration.MessageHandlers消息集合的对象。 消息处理程序还可以用于系统安全处理和控制,当客户端访问WebApi接口,第一时间判断请求的合法性和安全性,比如判断IP地址是否黑名单、是否恶意访问接口等。 HttpConfiguration.MessageHandlers属性: C# Code: namespace System.Web.Http { // // 摘要: // Represents a configuration of System.Web.Http.HttpServer instances. public class HttpConfiguration : IDisposable { //....省略代码.... // // 摘要: // Gets an ordered list of System.Net.Http.DelegatingHandler instances to be invoked // as an System.Net.Http.HttpRequestMessage travels up the stack and an System.Net.Http.HttpResponseMessage // travels down in stack in return. // // 返回结果: // The message handler collection. public Collection<DelegatingHandler> MessageHandlers { get; } //....省略代码.... } } //来源:C/S框架网(www.csframework.com) QQ:23404761 WebApi服务器端消息处理管道 在WebApi服务器端,Web API管道使用一些内置的消息处理程序: Text Code: 1.HttpServer 从主机获取请求。 2.HttpRoutingDispatcher 根据请求进行路由。 3.HttpControllerDispatcher 将请求发送到Web API控制器。 我们可以向管道添加自定义处理程序。消息处理程序更适合处理Http Messages,因为Message Handler可以进行以下操作: Text Code: 1.读取或修改请求标头。 2.为响应添加响应标头。 3.在请求到达控制器之前验证请求。 此图显示了插入管道的两个自定义处理程序(Custom Handlers): 向MessageHandlers添加自定义Message Handler: CSFramework.WebApi服务端框架自定义以下3个消息处理程序: 1. IP黑名单消息处理 IPBlacklistHandler 2. 接口访问限制流量 ThrottlingHandler 3. 添加监听接口访问器 RequestListenHandler C# Code: /// <summary> /// 用户自定义消息配置 /// </summary> public static class WebApiMessagesConfig { public static void Set(HttpConfiguration config, ILog2Database log) { //注意消息处理优先级别(顺序)!!! //添加IP黑名单消息处理 if (WebApiSettings.Current.AllowIPBlacklistAccessDenial) config.MessageHandlers.Add(new IPBlacklistHandler(log)); //添加接口访问限制流量 if (WebApiSettings.Current.AllowThrottling) { ThrottlingHandler throttling = new ThrottlingHandler() { Policy = new ThrottlePolicy(perSecond: 2, perMinute: 60, perHour: 600, perDay: 1500) { IpThrottling = true,//限制来自同IP请求的最大次数。如果在一分钟内,同样IP的客户端分别调用api/values和api/values/1两个接口, 那么调用api/values/1的请求会被拒绝掉。 EndpointThrottling = true// 如果配置了端点限流,同一秒内你也访问api/values/1了,请求将不会被拒绝,因为它们走的是不同的路由 }, Repository = new MemoryCacheRepository() }; config.MessageHandlers.Add(throttling);//限流 } //添加监听接口访问器 if (WebApiSettings.Current.AllowRequestListen) config.MessageHandlers.Add(new RequestListenHandler(log)); } } //来源:C/S框架网(www.csframework.com) QQ:23404761 .NET WebApi开发框架|MVC框架|后端框架|服务端框架-标准版V1.0 适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。 运行平台:Windows + .NET Framework 4.5 开发工具:Visual Studio 2015+,C#语言 数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql) 扫一扫加微信:
参考文档:
C/S开发框架系统异常处理机制(Exception Handler) C/S开发框架事务处理机制 服务端增加WCF服务全局异常处理机制 WebApi后端框架服务端框架开发微信小程序订阅消息接口 ASPNET WebAPI后端框架全局异常跟踪及处理机制,保存系统异常消息日志 Asp.Net开源服务端框架,WebApi后端框架标准版 .NET WebApi后端开发框架-微信小程序消息订阅与推送案例详解 WebApi快速开发框架,C# ASP.NET后端开发平台 微信小程序后端框架 | C# ASP.NET服务端WebApi快速开发框架平台 WebApi接口安全机制:API接口限流防止恶意访问 ThrottlingHandler消息处理机制 WebApi后端框架成功案例:对接海尔(Haier)集团某子公司的系统 CSFramework.WebApi后端框架Token令牌工作机制以及Token刷新原理 CSFramework.WebApi后端框架Token令牌体系架构与应用详解 WebApi后端框架Token身份认证,Api接口Token验证 CSFramework.WebApi后端框架Log日志配置详解
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |