微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决中间件在启动项目时写入响应

使用ASP.Net Core,C#

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

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);
        }

解决方法

我可以防止在招摇加载时触发中间件,而仅针对api请求触发。但这是更好的方法还是其他更好的方法?

app.UseWhen(context => `context.Request.Path.ToString().Contains("/api"),HandleBranch);`

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。