首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将ocelot与abp结合使用时如何将tenantid发送到下游服务

将ocelot与abp结合使用时如何将tenantid发送到下游服务
EN

Stack Overflow用户
提问于 2021-06-22 13:45:22
回答 1查看 65关注 0票数 0

我目前正在使用ABP和ocelot为微服务构建api网关。一切正常,但现在我想使用api网关作为域解析器。总部基地的域名解析器能够从不同的域名解析tenantid,但我希望ocelot能够将解析的租户id发送到下游服务(在请求下游服务的报头中包含__tenant报头)。

EN

回答 1

Stack Overflow用户

发布于 2021-06-24 19:00:24

您可以创建一个将ResolvedId添加到请求头部的Middleware。因此,ocelot会将编辑后的请求与tenantId一起发送到下游。

示例:

代码语言:javascript
运行
复制
public class MyMiddleware : IMiddleware, ITransientDependency
    {
        private readonly ICurrentTenant CurrentTenant;

        public MyMiddleware(ICurrentTenant currentTenant)
        {
            CurrentTenant = currentTenant;
        }

        public Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            context.Request.Headers.Add("__tenant", CurrentTenant.Id.ToString());

            return next(context);
        }
    }

正如您所看到的,中间件处理请求,它将CurrentTenantId添加到请求中。您的“域名租户解析器”之前已经找到了该CurrentTenant。

您可以在app.UseMultiTenancy()app.UseOcelot()之间使用此中间件

代码语言:javascript
运行
复制
...
app.UseMultiTenancy();

app.UseMiddleware<MyMiddleware>(); // it must be here, between them

app.UseOcelot();
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68078156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档