gpt4 book ai didi

.net core - 中间件不处理请求

转载 作者:行者123 更新时间:2023-12-01 06:46:11 24 4
gpt4 key购买 nike

我在 .Net Core 2 中遇到中间件问题。中间件不处理任何即将到来的请求。
我已经实现的。

KeyValidator中间件类:

public class KeyValidatorMiddleware
{
private readonly RequestDelegate _next;

public KeyValidatorMiddleware(RequestDelegate next)
{
_next = next;
}

public async Task Invoke(HttpContext context)
{

if (!context.Request.Headers.ContainsKey("api-key"))
{
context.Response.StatusCode = 401;
await context.Response.WriteAsync("No API key found !");
return;
}

await _next.Invoke(context);
}
}

并在 Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseMvc();
app.UseCors("MyPolicy");
app.UseMiddleware<KeyValidatorMiddleware>();
}

没有任何效果,为了使中间件工作,我缺少什么?

最佳答案

您应该移动 UseMiddleware行靠近顶部,中间件按顺序运行,它可能会在 MVC 级别停止。

例如:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}

app.UseMiddleware<KeyValidatorMiddleware>();

app.UseHttpsRedirection();
app.UseMvc();
app.UseCors("MyPolicy");
}

关于.net core - 中间件不处理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52333377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com