使用ASP.Net核心,C#
我有一个中间件,我在其中检查是否存在特定的cookie,否则将返回400响应。我的问题是中间件启动项目本身并检查cookie是否存在,然后在swagger索引页面中显示响应文本,我不会在swagger加载时want.the中间件。我希望这个条件只对请求执行。
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);
}
发布于 2020-10-08 12:37:55
我可以防止在swagger加载时触发中间件,并且只为api请求触发。但是,这是更好的方法还是其他更好的方法。
app.UseWhen(context => `context.Request.Path.ToString().Contains("/api"),HandleBranch);`
https://stackoverflow.com/questions/64255496
复制相似问题