Разработайте атрибут, который выполняет вашу проверку. Примените атрибут со всеми необходимыми параметрами для действий, которые вы хотите защитить. Напишите модульные тесты, которые проверяют, что рассматриваемые действия существуют и украшены вашим атрибутом (с соответствующими параметрами). В вашем атрибуте вам не нужно знать, какое действие выполняется, просто проходит ли текущий пользователь тесты в соответствии с настройками параметров вашего атрибута.
У меня есть несколько различных атрибутов, которые я получил от AuthorizeAttribute, которые делают именно такие вещи.
public class RequiresEmailAttribute : AuthorizeAttribute
{
... implements the logic to test whether the current user
... has an email address and redirects to error view if no
... email address is found
}
[RequiresEmail]
public ActionResult SendEmail( string to )
{
....
}