I use the design you have chosen quite often, not always with IoC.
It looks like you have a problem with the documentation. This code does not help explain what it does. I see a couple of solutions to this problem.
Firstly, you can strongly comment on your code. This is often a smell and largely depends on the implementation. You can also comment by assigning your IoC configurations in a specific way.
-, . , , , , , "AuthorizeAndAudit", (, IoC " " , , ). . IMessageHandler, IMessageHandler foreach .
-, . , , , , . ( ) , .. . ( Auth then Audit ..), ( ) . , , , .
, , , Windows .