Да, нарича се Аспектно-ориентирано програмиране и PostSharp е може би най-добрият инструмент за работата (за съжаление не е безплатен).
Въпреки това, ако използвате MVC (все още не сте споменали нищо като такова), можете да извлечете своя собствена версия на AuthorizeAttribute за запитване към вашите собствени таблици с разрешения и можете просто да украсите действията си с ролите, които искате да разрешите, напр.
[Authorize(Roles="Customer, Company")]
public ActionResult ViewOrders(...)
{
...
}
[Authorize(Roles="Customer")]
public ActionResult CreateOrder(...)
{
...
}