Ano, nazývá se to Aspect-Oriented Programming a PostSharp je pravděpodobně nejlepší nástroj pro tuto práci (bohužel není zdarma).
Pokud však používáte MVC (zatím jste nic takového nezmínili), můžete si odvodit vlastní verzi AuthorizeAttribute k dotazování na vaše vlastní tabulky oprávnění a můžete jednoduše ozdobit své akce rolemi, které chcete povolit, např.
[Authorize(Roles="Customer, Company")]
public ActionResult ViewOrders(...)
{
...
}
[Authorize(Roles="Customer")]
public ActionResult CreateOrder(...)
{
...
}