【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流 (2)

首先我们来分析下我们的代码,为了知道是哪个客户端请求了我们网关,需要提取clientId,分别从无需授权接口和需要授权接口两个方式提取,如果提取不到值直接给定默认值,放到全局限流里,防止绕过限流策略。然后根据客户端通过4步检验下是否允许访问(后面会介绍这4步怎么实现),如果满足限流策略直接返回限流错误提醒。

有了这个中间件,那么如何添加到Ocelot的管道里呢?上一篇介绍的非常详细,这篇我就不介绍了,自定义限流中间件扩展AhphClientRateLimitMiddlewareExtensions,代码如下。

using Ocelot.Middleware.Pipeline;
using System;
using System.Collections.Generic;
using System.Text;

namespace Ctr.AhphOcelot.RateLimit.Middleware
{
​ ///


​ /// 金焰的世界
​ /// 2018-11-18
​ /// 限流中间件扩展
​ ///
​ public static class AhphClientRateLimitMiddlewareExtensions
​ {
​ public static IOcelotPipelineBuilder UseAhphAuthenticationMiddleware(this IOcelotPipelineBuilder builder)
​ {
​ return builder.UseMiddleware

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygyfd.html