Mostly I've always used middleware to apply broad swaths of business logic to my ASP.NET Core operations, but found a nice use case for ActionFilterAttributes if you need to selectively implement business logic to specific controller items (https://learn.microsoft.com/en-us/aspnet/mvc/overview/older-versions/hands-on-labs/aspnet-mvc-4-custom-action-filters). However, they don't document how to do dependency injection on your filters well, here is the best practice I've found so far: https://edi.wang/post/2019/1/21/aspnet-core-dependency-injection-in-actionfilterattribute

