How to get ASP.NET Core MVC Filters from HttpContext
It's not really possible today.
It is possible in ASP.NET Core 3.0
app.UseRouting();
app.Use(async (context, next) =>
{
Endpoint endpoint = context.GetEndpoint();
YourFilterAttribute filter = endpoint.Metadata.GetMetadata<YourFilterAttribute>();
if (filter != null)
{
}
await next();
});
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
ASP.NET Core 3.0 uses a new routing which every action is an Endpoint
and all attributes on the action and the controller exists on Metadata
.
Here's how you can do it.
app.UseRouting();
app.Use(async (context, next) =>
{
Endpoint endpoint = context.GetEndpoint();
YourFilterAttribute filter = endpoint.Metadata.GetMetadata<YourFilterAttribute>();
if (filter != null)
{
}
await next();
});
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});