首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过条件Asp.Net核调用中间件组件

通过条件Asp.Net核调用中间件组件
EN

Stack Overflow用户
提问于 2018-09-26 14:38:14
回答 2查看 816关注 0票数 1

是否可以只对不来自js的请求执行中间件。因为我有一个中间件,执行它对我的服务器的js请求没有什么必要。是否有可能检查请求不是直接的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-26 15:00:15

您不能只对某些请求执行中间件,但可以检查请求是否满足中间件中的条件,例如,如果请求中存在报头。

假设您的js客户端调用您的api,在每个请求中添加一个自定义标头,您可以编写一个中间件,检查该标头,并在出现报头的情况下执行一些代码。

代码语言:javascript
运行
复制
app.Use((context, next) =>
{
    if (context.Request.Headers.Any(h => h.Key == "Custom-Header"))
    {
           DoStuff();
    }

    return next();
})
票数 2
EN

Stack Overflow用户

发布于 2018-09-27 05:35:05

对于执行特定请求的中间件,您可以尝试MapWhen

代码语言:javascript
运行
复制
public void Configure(IApplicationBuilder app)
{
    app.MapWhen(context => context.Request.Query.ContainsKey("branch"),
                           HandleBranch);

    app.Run(async context =>
    {
        await context.Response.WriteAsync("Hello from non-Map delegate. <p>");
    });
}

为了检查是否处理请求,实现您自己的逻辑来替换context.Request.Query.ContainsKey("branch")

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

https://stackoverflow.com/questions/52520339

复制
相关文章

相似问题

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