首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >中间件在启动项目时写入响应

中间件在启动项目时写入响应
EN

Stack Overflow用户
提问于 2020-10-08 11:50:08
回答 1查看 35关注 0票数 0

使用ASP.Net核心,C#

我有一个中间件,我在其中检查是否存在特定的cookie,否则将返回400响应。我的问题是中间件启动项目本身并检查cookie是否存在,然后在swagger索引页面中显示响应文本,我不会在swagger加载时want.the中间件。我希望这个条件只对请求执行。

代码语言:javascript
运行
复制
public async Task InvokeAsync(HttpContext context)
        {
            var pl = context.Request.Cookies["pl"];
            var sig = context.Request.Cookies["sig"];
            if (string.IsNullOrWhiteSpace(pl) || string.IsNullOrWhiteSpace(sig))
            {
                context.Response.StatusCode = StatusCodes.Status400BadRequest;
                context.Response.ContentType = "application/json";
                await context.Response.WriteAsync("Invalid Data");
                return;
            }
           // If success i process and do something
            
            // Call the next delegate/middleware in the pipeline
            await _next(context);
        }
EN

回答 1

Stack Overflow用户

发布于 2020-10-08 12:37:55

我可以防止在swagger加载时触发中间件,并且只为api请求触发。但是,这是更好的方法还是其他更好的方法。

代码语言:javascript
运行
复制
app.UseWhen(context => `context.Request.Path.ToString().Contains("/api"),HandleBranch);`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64255496

复制
相关文章

相似问题

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