Control application behavior by using MVC extensibility points

You work for a financial services company that deals with many small brokers. Your executives want to be able to run a report that details all the actions taken by the brokers on the site as a form of auditing and protection. Neither the application nor system currently stores this kind of information. Which of the following are viable solutions? (Choose all that apply)

Create a globally applied custom action filter, ensuring that you set the AllowMultiple parameter to false, that implements the OnActionExecuting method. Have it store the user, the URL, and the forms collection.
Override the AuthorizeAttribute and have it store the user, the URL, and the forms collection.
Create a globally applied custom action filter that implements the OnActionExecuting method. Have it store the user, the URL, and the forms collection.
Create a globally applied custom action filter that implements the OnActionExecuted method. Have it store the user, the URL, and the forms collection.