【发布时间】:2018-09-14 21:56:39
【问题描述】:
我在 .Net Core 2 中遇到中间件问题。中间件不处理任何即将到来的请求。 我已经实现了。
KeyValidatorMiddleware 类:
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行?能给我们展示一个更完整的Configure方法吗? -
将
UseMiddleware行移到更靠近顶部的位置,中间件按顺序运行,它可能会停在MVC 级别。
标签: .net asp.net-core .net-core