我有一个ASP.NET核心应用程序和一个简单的OWIN中间件来检查一些数据。但我只想在页面被请求时运行中间件。现在它正在运行时,资产也被请求,如图像,css等。
如何才能使owin中间件代码仅在页面请求上执行?
注册:
app.UseSiteThemer();
Site Themer扩展类:
public static class SiteThemerExtensions
{
public static IApplicationBuilder UseSiteThemer(this IApplicationBuilder builder)
{
return builder.UseMiddleware<SiteThemerMiddleware>();
}
}
OWIN中间件:
public class SiteThemerMiddleware
{
private readonly RequestDelegate _next;
private readonly ISiteService _siteService;
public SiteThemerMiddleware(RequestDelegate next, ISiteService siteService)
{
_siteService = siteService;
_next = next;
//_logger = loggerFactory.CreateLogger<SiteThemerMiddleware>();
}
public async Task Invoke(HttpContext context)
{
await Task.Run(() =>
{
Console.Write("OWIN Hit");
});
//_logger.LogInformation("Handling request: " + context.Request.Path);
await _next.Invoke(context);
//_logger.LogInformation("Finished handling request.");
}
}
https://stackoverflow.com/questions/42673469
复制相似问题