Ja, det hedder Aspect-oriented programmering og PostSharp er nok det bedste værktøj til jobbet (det er desværre ikke gratis).
Men hvis du bruger MVC (du har ikke nævnt noget som sådan endnu), kan du udlede din egen version af AuthorizeAttribute for at forespørge på dine egne tilladelsestabeller, og du kan simpelthen dekorere dine handlinger med de roller, du vil tillade, f.eks.
[Authorize(Roles="Customer, Company")]
public ActionResult ViewOrders(...)
{
...
}
[Authorize(Roles="Customer")]
public ActionResult CreateOrder(...)
{
...
}