Ja, det heter Aspektorienterad programmering och PostSharp är förmodligen det bästa verktyget för jobbet (tyvärr är det inte gratis).
Men om du använder MVC (du har inte nämnt något som sådant ännu) kan du härleda din egen version av AuthorizeAttribute för att fråga dina egna behörighetstabeller och du kan helt enkelt dekorera dina handlingar med de roller du vill tillåta t.ex.
[Authorize(Roles="Customer, Company")]
public ActionResult ViewOrders(...)
{
...
}
[Authorize(Roles="Customer")]
public ActionResult CreateOrder(...)
{
...
}