2
我有一个ASP.NET核心应用程序和一个简单的OWIN中间件来检查一些数据。但是我想只在请求页面时运行中间件。现在它的运行时还需要资产,如图像,CSS等。ASP.NET核心OWIN中间件
如何让owin中间件代码只在页面请求上执行?
报名:
app.UseSiteThemer();
网站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.");
}
}
添加它后面的管道比静态文件处理中间件更多的细节? –
向我们展示如何注册您的中间件。密钥可能会从注册切换到。使用注册.Map,但没有只是猜测的代码。 – tpeczek
@tpeczek我继续前进并更新了我的代码,谢谢! – TheWebGuy