ASP.NET 核心 - MVC 上的中间件
ASP.NET core - middleware on MVC
我尝试在 macOS 上创建一个 asp.net 核心网站 api。
但是我的中间件没有在 mvc-call 上调用。
我的配置:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, BackendDbContext context)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
//app.UseStaticFiles();
app.UseMvc();
app.UseMiddleware<AuthMiddleware>();
BackendDbInitializer.Init(context);
}
还有我的中间件:
public class AuthMiddleware
{
private readonly RequestDelegate _next;
public AuthMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
Console.WriteLine("Invoke......................");
await _next.Invoke(context);
}
}
当我发出 HTTP 请求时,它与控制器请求不匹配。中间件 class 被调用。
我如何设置中间件 class 仅在 mvc 请求时被调用。
您可以将中间件用作 MVC 过滤器:
public class HomeController : Controller
{
[MiddlewareFilter(typeof(AuthMiddleware))]
public IActionResult Index()
{
return View();
}
}
在这种情况下,每次调用操作方法 Index
时,AuthMiddleware
将 运行。
PS: 你需要安装这个包(Microsoft.AspNetCore.Mvc.Core)
more info(请参阅作为 MVC 过滤器的中间件部分)
我尝试在 macOS 上创建一个 asp.net 核心网站 api。
但是我的中间件没有在 mvc-call 上调用。
我的配置:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, BackendDbContext context)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
//app.UseStaticFiles();
app.UseMvc();
app.UseMiddleware<AuthMiddleware>();
BackendDbInitializer.Init(context);
}
还有我的中间件:
public class AuthMiddleware
{
private readonly RequestDelegate _next;
public AuthMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
Console.WriteLine("Invoke......................");
await _next.Invoke(context);
}
}
当我发出 HTTP 请求时,它与控制器请求不匹配。中间件 class 被调用。
我如何设置中间件 class 仅在 mvc 请求时被调用。
您可以将中间件用作 MVC 过滤器:
public class HomeController : Controller
{
[MiddlewareFilter(typeof(AuthMiddleware))]
public IActionResult Index()
{
return View();
}
}
在这种情况下,每次调用操作方法 Index
时,AuthMiddleware
将 运行。
PS: 你需要安装这个包(Microsoft.AspNetCore.Mvc.Core)
more info(请参阅作为 MVC 过滤器的中间件部分)